【发布时间】:2015-06-02 08:37:15
【问题描述】:
如何从标准输入读取输入,直到 EOF 逐行读取,每行包含四个空格分隔的 C 中的整数。可以通过如下命令输入:
$ 回声 1 2 3 4 | ./myProgram
或
$ cat file.txt
1 2 3 4
0 -3 2 -4
$ ./myProgram
然后我想将单个整数保存到 int 变量中。
char strCoordinates[101];
char *ptr;
int coordinates[4];
long int tempCoordinates;
while(scanf("%s", strCoordinates) != EOF) {
tempCoordinates = strtol(strCoordinates, &ptr, 10);
int lastDigit = 0;
for (int x = 4; x >= 4; x--) {
lastDigit = tempCoordinates % 10;
coordinates[x] = lastDigit;
tempCoordinates = (tempCoordinates - lastDigit) / 10;
}
}
这是我正在尝试的,但它似乎很复杂。 . .
任何帮助将不胜感激。不确定是否使用scanf()、sscanf()、fscanf()、gets()
【问题讨论】:
-
scanf("%s", strCoordinates)不是“read line by line”。 -
while(scanf("%100[^\n]%*c", strCoordinates) != EOF)@BLUEPIXY 怎么样