【问题标题】:Reading line by line and assigning to array in C逐行读取并分配给C中的数组
【发布时间】:2014-11-15 05:53:43
【问题描述】:

我想在 C 程序中读取 input.txt 文件中的以下行并将其分配给变量。

 (1,3) (4,8)
 (3,6) (3,10)
 (2,6) (4,56)

...它必须读取超过 100 行并在每行中绘制具有 4 个值的线。

我使用的是fgetssscanf,但我无法获得值,下面是我的代码。

static const char filename[] = "src/input.txt";
FILE *file = fopen ( filename, "r" );

if ( file != NULL )
{
    char line [ 128 ]; 
    int i,j,k,l=-1;

    while ( fgets ( line, sizeof line, file ) != NULL )
    {
        fputs ( line, stdout ); /* write a line */            
        sscanf (line,"%d" "%d" "%d" "%d", i,j, k,l); 
    }
    fclose ( file );
}

【问题讨论】:

  • 只显示您尝试过的内容!!!
  • 我想在每行中读取四个整数并画一条线,但我无法粘贴我的代码,因为它给出了很多错误,我已经尝试了半个小时
  • 当您在 C 编程中走得更远时,请查看 getline 的行输入,而不是 fgets。主要优点是,如果您提供指向getline 的未分配指针,它将根据需要分配空间,并返回成功读取的字符数。 fgets 在这里很好,但把getline 放在你的臀部口袋里以备后用。

标签: c


【解决方案1】:

在 scanf 中,将 i、j、k、l 替换为地址 &i、&j、&k、&l

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多