gpt4 book ai didi

c - 如何只读取每行的第一个单词?

转载 作者:太空狗 更新时间:2023-10-29 15:51:23 29 4
gpt4 key购买 nike

我已经完成了许多简单的过程,但我只是试图从文本文件的每一行中将第一个单词读入 char word[30]

我试过了,但没有成功。哦,每次阅读时我都必须重复使用该字符。 (每次阅读时都放入有序列表)。

任何人都可以告诉我一种以简单和“干净”的方式从文件中读取这种方式的方法吗?

FILE *fp;
char word[30];
fp = fopen("/myhome/Desktop/tp0_test.txt", "r");
if (fp == NULL) {
printf("Erro ao abrir ficheiro!\n");
} else {
while (!feof(fp)) {
fscanf(fp,"%*[^\n]%s",word);//not working very well...
printf("word read is: %s\n", word);
strcpy(word,""); //is this correct?
}
}
fclose(fp);

例如,对于包含以下内容的文件:

word1 word5
word2 kkk
word3 1322
word4 synsfsdfs

它只打印这个:

word read is: word2
word read is: word3
word read is: word4
word read is:

最佳答案

只需交换格式字符串中的转换规范

        // fscanf(fp,"%*[^\n]%s",word);//not working very well...
fscanf(fp,"%s%*[^\n]",word);

阅读第一个单词并忽略其余部分,而不是忽略该行并阅读第一个单词。


编辑一些解释

%s 忽略空格,因此如果输入缓冲区有“四十二”,scanf 忽略第一个空格,将“四十”复制到目标并将缓冲区保留在“二”之前的空格处

%*[^\n] 忽略换行符之前的所有内容,不包括换行符。所以一个包含“one\n two”的缓冲区被定位在 scanf 之后的换行符处(就好像它是“\n two”)

关于c - 如何只读取每行的第一个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756308/

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