gpt4 book ai didi

c - 我如何忽略 C 中每行某个位置之后的字符?

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:05 25 4
gpt4 key购买 nike

我正在尝试将 txt 文件输入到我的 C 程序中,看起来像这样

123 x 182   //this is a comment in the file
1234 c 1923 //this is another comment in the file
12 p 3 //this is another comment in the file

我需要在每一行中存储整数、单个字符和另一个整数,然后我想忽略该行中的所有其他内容。这是我尝试过的....

while (fscanf(file, "%d %c %d", &one,&two,&three) !=EOF)
{
printf("%d %c %d\n", one,two,three);
}

现在我只是打印出这些值来测试这个过程。所以,如果我用一个在我需要的前 3 件事之后没有任何评论或额外内容的文件来测试它,它就可以完美地工作。但是如果有多余的东西,我就会陷入无限循环,重复打印第一行。

最佳答案

在 C 中可能有更好的方法,但您可以在当前循环内添加一个循环来读入剩余的字符,直到您遇到换行符。

while (fscanf(file, "%d %c %d", &one,&two,&three) !=EOF)
{
printf("%d %c %d\n", one,two,three);
while(fgetc(file) != '\n'){};
}

只要它得到的字符是换行符,它就应该跳出嵌套的 while 循环,下一个 fscanf 将从下一行开始。

关于c - 我如何忽略 C 中每行某个位置之后的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com