Я пытаюсь предложить пользователю ввести несколько номеров и, когда пользователь вводит строку, программа вычисляет сумму этих чисел. Я с трудом, потому что я хочу, чтобы сохранить программу как можно проще, не создавая другие переменные для хранения строк и т.д.Ввод различных типов (в C)
int menu(int choice){
int total = 0, values = 0;
char *string = (char*) &values;
switch(choice){
case 1: printf("Enter your values separated by a whitespace: ");
while(string != "compute") {
scanf("%d",&values);
total = total + values;
}
}
return total;
}
Я хочу, чтобы пользователь мог ввести стольких чисел, как он/она хочет (очевидно, в пределах ограничения памяти), поэтому я должен постоянно предвидеть int (или другое «число»), так что самый эффективный способ также предвидеть строку?
Я знаю, что следующая строка немного отрывочна, но почему именно, если я хочу, чтобы переменная «строка» обрабатывала «значения» как тип строки/символа? char *string = (char*) &values;
Это не то, как вы сравниваете строки. 'man strcmp' –
' string' указывает на тип 'int', и он никогда не будет содержать фактическую строку независимо от того, какой пользователь вводит' scanf'. Кроме того, это не так, как вы тестируете строки в C. Выполняя 'string! =" Compute "', вы фактически сравниваете указатели. – Havenard
Чтобы это было просто, я предлагаю вам использовать вход 0 в качестве метки для завершения цикла. – Havenard