C:读取单词并在其中包含\n,但不包含空格

标签 c string file fgets scanf

我需要从 C 语言的文件中读取内容并将每个单词放入数组中, 单词中不应包含空格(当到达空格时,它应该结束复制该单词),但只要找到它,\n 就必须包含该单词。

fscanf(arquivo,"%s",palavras[i].string);

几乎可以工作,但是当在文件中找到它时,它不包括\n ..

fgets (temp , 100 , arquivo);

不起作用,因为它在找到空格时不会停止。

大家觉得怎么样?

最佳答案

在这种情况下,

fscanf 将在到达任何类型的空白(包括换行符)时停止。您可以尝试使用 fgets 读取整行(包括换行符),然后迭代地使用 strtok 将其分解。

例如:

char temp[100];
char *tok;

fgets (temp , 100 , arquivo);
while ((tok = strtok(temp, " ")) != NULL) {
    // 'tok' points to a null-terminated word with no spaces
}

关于C:读取单词并在其中包含\n,但不包含空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17572628/

相关文章:

string - Like查询的字符串连接问题

c - 文件末尾后有哪些字符?

c - 函数调用顺序,是 GCC 错误吗?

c - C 中的基本函数

regex - 如何在 Groovy 中匹配字符串和模式

c++ - 将字符串拆分为带有空格的 vector C++ 错误

Java 导出 - 文本文件

java - 如何在运行时加载的 jsp 中包含 html 片段?

C 指针错误,得到 exc_bad_access code=2,address0x100000000

C - 字符串返回 NULL