Способ справиться с этим входом? - PullRequest
1 голос
/ 15 ноября 2011

Я пытаюсь определить способ, которым, когда данные вводятся, вот так:

Name Integer
Name Integer
Name Integer
.

Каждый раз, когда вводятся имя и целое число и обнаруживается новая строка, stuff делается с этим именем и целым числом, затем снова и снова, пока не появится «.»

Я пробовал циклы getchar() и операторы IF, например, для обнаружения '\n', но ни один из них не работает.Есть идеи?

Ответы [ 4 ]

1 голос
/ 15 ноября 2011

Как насчет использования scanf()?

scanf("%s %d\n", my_string, &my_int);

http://linux.die.net/man/3/scanf

0 голосов
/ 16 ноября 2011

Не используйте scanf напрямую.Это удивительно сложно в использовании.Лучше прочитать всю строку ввода (например, с fgets) и затем проанализировать ее (возможно, с sscanf).

0 голосов
/ 15 ноября 2011

Как насчет:

#include <string.h>
#include <stdio.h>

int main()
{
    char input[30];
    gets(input);
    while(strcmp(input, ".") != 0)
    {
        // do stuff
        gets(input);
    }
    return 0;
}
0 голосов
/ 15 ноября 2011
scanf("%s%d\n", name, &intVar);
if((*name=='.') && (*(name+1)=='\0')){
return 0;
}

этого должно быть достаточно

...