在C中逐行读取txt文件

酪蛋白

我正在尝试从txt文件中撤回字符串。

文件内容为;

  1. 苹果
  2. 橙子

基本上,每一行都有一个单词,我想阅读每一行并将单词缩进字符串中,char* word[25]因为较长的单词为24个字符。当我实现一个简单的代码以读取每行之间ASCII中的每个字符时,就有10行尾因此,我创建了一个for没有任何条件循环,并添加了if条件以发现10行(LF)值结尾。但这是行不通的,我敢肯定我搞砸了一些非常基本的代码或逻辑。抱歉,如果我的代码看起来不合逻辑或非常错误,那么我是新手。另外,如果可以完成此步骤,我将使用很多库添加cos。TIA

#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

int main(int argc, char *argv[])
{
    if (argc < 2)
    {
        printf("Usage: ./word filename\n");

        return 1;
    }
    
    FILE* ptr = fopen(argv[1], "r");
    
    char ch;
    char* word[45];
    
    for (int i = 0; ;i++)
    {
        ch = fgetc(ptr);
        
        word[i] = &ch;
        
        if (ch == 10)
        {
            break;
        }
    }
    printf("%s\n", *word);

    return 0;
}

终端输出

~/snippets/ $ make word
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow    word.c  -lcrypt -lcs50 -lm -o word
~/snippets/ $ ./word lec3.txt

`
 ~/snippets/ $ 
披风

如果放下指针怎么办..

char ch;
char word[45];    
for (int i = 0; ;i++)
{
    ch = fgetc(ptr);
    word[i] = ch;
    if (ch == 10)
    {
        break;
    }
}
printf("%s\n", word);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章