Я получаю сообщение об ошибке «нет оператора <

#c

Вопрос:

В коде я пытаюсь ввести восемь значений, введенных пользователем, а затем сложить эти значения вместе, сложить вместе, а затем добавить три и, наконец, разделить общее количество миль на восемь. Однако, когда я пошел, чтобы запустить этот код, я получил сообщение об ошибке без оператора <

Вот код, о котором идет речь, я приношу извинения за любое плохое форматирование, я новый пользователь этого сайта.

 #include <iostream>
using namespace std;

int main()
{
    
    int hourswalked, hourswalkedD2, hourswalkedD3, hourswalkedD4, hourswalkedD5, 
        hourswalkedD6, hourswalkedD7,hourswalkedD8;

    int total_hours = hourswalked   hourswalkedD2   hourswalkedD3   hourswalkedD4   hourswalkedD5   hourswalkedD6   hourswalkedD7   hourswalkedD8;
    int total_miles = total_hours * 3;
    int avg_miles = total_miles / 8;

    cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;

    cin >> hourswalked >> endl;
    cin >> hourswalkedD2 >> endl;
    cin >> hourswalkedD3 >> endl; 
    cin >> hourswalkedD4 >> endl;
    cin >> hourswalkedD5 >> endl;
    cin >> hourswalkedD6 >> endl;
    cin >> hourswalkedD7 >> endl;
    cin >> hourswalkedD8 >> endl;

    cout << "You walked for " << total_hours << " hours." << endl;

    cout << "You walked for " << total_miles << " miles." << endl; 

    cout << "On average you walked " << avg_miles << " miles." << endl;

    return 0; 
}
 

Комментарии:

1. вам это не нужно >> endl при использовании cin .

2. Вы уверены, что ошибка была << и не >> была ?

3. Кроме того, вы должны выполнить вычисления после того, как присвоите значения восьми входным данным.

4. Не по теме, но вам следует почитать о циклах и vector s.

5. Ваш компилятор должен предупредить вас об использовании этих переменных, прежде чем давать им значение. Убедитесь, что ваш уровень предупреждения повышен.

Ответ №1:

Предполагается, что вы получите ошибку при использовании последнего оператора «>>>» в cin.

Вам не нужно использовать» >> endl «, когда вы принимаете ввод. Это требуется только тогда, когда вы хотите напечатать новую строку, а не когда вы вводите данные.

Просто удалите все « >> endl » во время ввода, и все готово.

Пример кода:

 #include<iostream>
using namespace std;

int main()
{

    int hourswalked, hourswalkedD2, hourswalkedD3, hourswalkedD4, hourswalkedD5,
        hourswalkedD6, hourswalkedD7,hourswalkedD8;

    int total_hours = hourswalked   hourswalkedD2   hourswalkedD3   hourswalkedD4   hourswalkedD5   hourswalkedD6   hourswalkedD7   hourswalkedD8;
    int total_miles = total_hours * 3;
    int avg_miles = total_miles / 8;

    cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;

    cin >> hourswalked;
    cin >> hourswalkedD2;
    cin >> hourswalkedD3;
    cin >> hourswalkedD4;
    cin >> hourswalkedD5;
    cin >> hourswalkedD6;
    cin >> hourswalkedD7;
    cin >> hourswalkedD8;

    cout << "You walked for " << total_hours << " hours." << endl;

    cout << "You walked for " << total_miles << " miles." << endl;

    cout << "On average you walked " << avg_miles << " miles." << endl;

    return 0;
}
 

Ответ №2:

std::cin принимает пользовательский ввод, вы можете запомнить это по >> оператору, выглядит так, как будто он передает данные в переменную. Поэтому, когда вы помещаете std::endl , вы «перенаправляете» данные std::cin в переменную, но это не то std::endl , для чего она предназначена. Ваше решение приведено ниже:

 std::cin >> hoursWalked;
std::cout << std::endl;
 

Ответ №3:

Как говорили другие, вам не нужен эндл. Также используйте массив из 8 для хранения ваших часов.

 int main()
{
    int hourswalked   = 0,
        hourswalkedD2 = 0,
        hourswalkedD3 = 0,
        hourswalkedD4 = 0,
        hourswalkedD5 = 0,
        hourswalkedD6 = 0,
        hourswalkedD7 = 0,
        hourswalkedD8 = 0;

    cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;

    cin >> hourswalked
        >> hourswalkedD2
        >> hourswalkedD3
        >> hourswalkedD4
        >> hourswalkedD5
        >> hourswalkedD6
        >> hourswalkedD7
        >> hourswalkedD8;

    int total_hours = hourswalked   hourswalkedD2   hourswalkedD3   
    hourswalkedD4   hourswalkedD5   hourswalkedD6   hourswalkedD7   
    hourswalkedD8;

    int total_miles = total_hours * 3;
    int avg_miles = total_miles / 8;

    cout << "You walked for " << total_hours << " hours." << endl
         << "You walked for " << total_miles << " miles." << endl
         << "On average you walked " << avg_miles << " miles." << endl;

    return 0;
}
 

Комментарии:

1. Большое вам спасибо! Это устранило ошибку операнда, но теперь все остальные операции не работают, потому что все переменные теперь просто установлены в 0, и когда я запускаю код, он выводит 0 для общего количества часов, общего количества миль и средних миль

2. Я обновил его, это потому, что вы должны выполнить вычисления после того, как пользователь даст вам значения.

3. Оооооооо, хорошо, я не знал, что порядок кода так важен в C , потому что я помню, что в python вы могли бы поместить свои переменные в начало и написать остальную часть кода так, как вы хотите, вместе с HTML, где вы можете сегментировать материал в голове и теле. Я думаю, от старых привычек трудно избавиться, лол

4. @tgol, Python такой же , он будет выполнять строки по порядку и использовать значение переменной во время выполнения строки.

Ответ №4:

 int hourswalked, hourswalkedD2, hourswalkedD3, hourswalkedD4, hourswalkedD5, 
    hourswalkedD6, hourswalkedD7,hourswalkedD8;


cout << endl << "Please enter the number of hours you have walked each day of your hike" << endl;

cin >> hourswalked;
cin >> hourswalkedD2;
cin >> hourswalkedD3; 
cin >> hourswalkedD4;
cin >> hourswalkedD5;
cin >> hourswalkedD6;
cin >> hourswalkedD7;
cin >> hourswalkedD8;


int total_hours = hourswalked   hourswalkedD2   hourswalkedD3   hourswalkedD4   hourswalkedD5   hourswalkedD6   hourswalkedD7   hourswalkedD8;
int total_miles = total_hours * 3;
int avg_miles = total_miles / 8;

cout << "You walked for " << total_hours << " hours." << endl;

cout << "You walked for " << total_miles << " miles." << endl; 

cout << "On average you walked " << avg_miles << " miles." << endl;

return 0; 
 

Комментарии:

1. Пожалуйста, укажите дополнительную информацию в своем ответе. Как это написано в настоящее время, трудно понять ваше решение.