阅读直到文件末尾是常见的,但我感兴趣的是如何从文本文件中读取数据(一系列数字)直到行尾?我的任务是从文件中读取几个数字系列,这些数字位于新行中.以下是输入示例:
1 2 53 7 27 8
67 5 2
1 56 9 100 2 3 13 101 78
Run Code Online (Sandbox Code Playgroud)
第一系列:1 2 53 7 27 8
第二个:67 5 2
第三名:1 56 9 100 2 3 13 101 78
我必须分别从文件中读取它们,但每个都要直到行尾.我有这个代码:
#include <stdio.h>
FILE *fp;
const char EOL = '\\0';
void main()
{
fp = fopen("26.txt", "r");
char buffer[128];
int a[100];
int i = 0;
freopen("26.txt","r",stdin);
while(scanf("%d",&a[i])==1 && buffer[i] != EOL)
i++;
int n = i;
fclose(stdin);
}
Run Code Online (Sandbox Code Playgroud)
它会一直读到文件的末尾,因此它没有达到我预期的效果.你有什么建议?
使用fgets()读取整行,然后解析该行(可能使用strtol()).
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char buffer[10000];
char *pbuff;
int value;
while (1) {
if (!fgets(buffer, sizeof buffer, stdin)) break;
printf("Line contains");
pbuff = buffer;
while (1) {
if (*pbuff == '\n') break;
value = strtol(pbuff, &pbuff, 10);
printf(" %d", value);
}
printf("\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47140 次 |
| 最近记录: |