Моя программа работала так, как предполагалось, до тех пор, пока я не добавлю часть toupper в свою программу. Я пробовал посмотреть на код ошибки, но это не помогает. Ошибки:Неправильное использование неверно? Рабочий код до тех пор, пока я не ввел в верхний колонтитул
никакой функции согласования не вызвать 2 аргументы как ожидается, один при условии
Так что я знаю, что ошибка в этих двух операторах в моем цикле. Что я сделал не так?
Я хочу, чтобы сделать себе имя, как
Джон Браун пойти Джон Браун
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
int main(){
string firstname[5];
string lastname[5];
ifstream fin("data_names.txt");
if (!fin) {
cout << "There is no file" << endl;
}
int i = 0;
while(i < 5 && (fin >> firstname[i]) && (fin >> lastname[i])) {
firstname[0] = toupper(firstname[0]);
lastname[0] = toupper(lastname[0]);
i++;
}
cout << firstname[0] << " " << lastname [0] << endl;
cout << firstname[1] << " " << lastname [1] << endl;
cout << firstname[2] << " " << lastname [2] << endl;
cout << firstname[3] << " " << lastname [3] << endl;
cout << firstname[4] << " " << lastname [4] << endl;
return 0;
}
Какая линия ошибка указывает на? – wallyk
'toupper' ожидает' int', вы передаете ему 'string' - [' toupper' Documentation] (http://www.cplusplus.com/reference/cctype/toupper/). –
'toupper' работает на одном персонаже за раз. Если вы хотите использовать верхнюю часть всей строки, вам нужно сделать цикл, который проходит через строку, применяя 'toupper' для каждого символа. –