我是C编程的新手。我有一个输入文件,我想跳过输入文件的第一行,并尝试撰写输出文件。我的文件包含一些图形信息。我想从输入文件中获取u,v,w值,而不是用户输入。但是我对u,v,w没有任何价值。
printf("Enter (u v w):\n");
for(i = 0; i < edges; ++i){
scanf("%d%d%d", &u, &v, &w);
}
我试过这样:
fgets(buffer, 1024, inputFile);
while( ( ch = fgetc(inputFile) ) != EOF )
{
sscanf(buffer, "%d%d%d", &u, &v, &w);
}
答案 0 :(得分:2)
也许是这样的:
fscanf(inputFile, "%*[^\n]"); // Read and discard a line
while(fscanf(inputFile, "%d%d%d", &u, &v, &w) == 3 )
{
...
}
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int u, v, w;
FILE *fp;
fp = fopen("data.txt", "r");
if (!fp)
{
perror("fopen()");
exit(EXIT_FAILURE);
}
fscanf(fp, "%*[^\n]"); // Read and discard a line
while (fscanf(fp, "%d%d%d", &u, &v, &w) == 3)
{
printf("%d %d %d\n", u, v, w);
}
fclose(fp);
}
data.txt中
1 2 3
4 5 6
7 8 9
输出:
4 5 6
7 8 9