c - 坚持 C 文件 i/o

标签 c file io

我有一个从 txt 文件读取的 C 程序。文本文件包含一个单词列表,每行一个单词。我想要做的是从文本文件中获取单词并将它们打印为一个句子/段落,但是,当我尝试打印它们时,它们仍然每行打印一个单词。 当我从文件中读取它们时,我将这些单词存储在一个二维字符数组中。我认为正在发生的事情是数组从 txt 文件复制换行符,对吗?如果是这样,我如何在没有新行字符的情况下将单词添加到数组中?

    while(fgets(line,20,lineRead)!=NULL)
    {
        for(j = 0; j < 20;j++)
        {            
            message[k][j]= line[j];

        }
        printf("%s", message[k]);
    }

我尝试了几个 while 循环但没有成功:

while(line[j] != ' ')        
while(line[j] != NULL)       
while(line[j] != EOF)      
while(line[j] != ' \')

我正在学习 C,所以请具体说明我的错误。我想了解我做错了什么,而不仅仅是得到答案。

谢谢!

最佳答案

您可以简单地将您的 for 循环更改为:

for(j = 0; j < 20 && line[j] != '\n';j++)
{            
    message[k][j]= line[j];
}
if(j < 20)
    message[k][j] = '\0';

关于c - 坚持 C 文件 i/o,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790137/

相关文章:

file - 使用小 RAM 在 Go 中读取大文件的最快方法

python - 为什么检查然后立即打开文件有风险?

java - I/O 操作中 CPU 使用率 100%

c - 优先队列的这段 C 代码是如何工作的?

c - 尝试了解在迭代反转链表时列表如何被修改

c++ - C和C++中静态变量初始化的区别

c# - 如何查找和替换文件中的文本

c - 如何访问结构数组中的变量

C编程: Create and write 2D array of files as function

assembly - 从哪里获得硬件的 I/O 端口地址分配?