首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用fscanf读取多行

如何使用fscanf读取多行
EN

Stack Overflow用户
提问于 2013-04-25 22:00:28
回答 4查看 17.6K关注 0票数 1

我希望读取我的data.txt文件,并将其存储在名为bufferi的数组中

1 1 1

2 2 2

3 3 3

4 4 4

我正在写一段代码,看起来像这样

代码语言:javascript
运行
复制
#include"stdio.h"
#include"stdlib.h"

int main() {

  FILE *fp1;
  int i,j;

  int buffer[4][4]={0};

  fp1 = fopen("exact_enumerated_config_442_cub_mc","r");

  for(i=0;i<4;i++) {
    for(j=0;j<4;j++) {
      fscanf(fp1,"%d", &buffer[i][j]);
    }
    // fscanf(fp1,"\n");
  }
  fclose(fp1);

  for(i=0;i<4;i++) {
    for(j=0;j<4;j++) {
      printf("%d ",buffer[i][j]);
    }
    printf("\n");
  }
}

但我得到了输出...

1 1 2 1

5 1 6 1

17 1 18 1

21 1 22 1

为什么?

EN

Stack Overflow用户

发布于 2013-04-25 22:07:14

获取所需的输出(1111,2222,...)更改:

代码语言:javascript
运行
复制
fp1 = fopen("exact_enumerated_config_442_cub_mc","r");

至:

代码语言:javascript
运行
复制
fp1 = fopen("data.txt","r");

Clarification:当使用fopen时,你应该写下你想要读取的文件名。在这种情况下,您必须编写data.txt,而不是exact_enumerated_config_442_cub_mc...没有这个名字的文件,也没有像1 1 1,2 2 2,3 3 3,4 4 4这样的数据...

有关更多详细信息,请访问:

这是你的“修改”(删除了额外/浪费/额外的{ }并编写了data.txt )代码,它给出了你所需要的输出:1 1 1,2 2 2,3 3 3,4 4 4。它会输出名为buffer的数组。这意味着..。

...数据复制成功!从 "data.txt" buffer[4][4]

代码语言:javascript
运行
复制
#include"stdio.h"
#include"stdlib.h"

int main()
{
    FILE *fp1;
    int i,j;

    int buffer[4][4];

    for ( i = 0; i < 4; i++ )
        for ( j = 0; j < 4; j++ )
            buffer[i][j] = 0;


    fp1 = fopen("data.txt","r");

    for(i=0; i<4; i++)
        for(j=0; j<4; j++)
            fscanf(fp1,"%d", &buffer[i][j]);

    fclose(fp1);


    for(i=0; i<4; i++)
    {
        for(j=0; j<4; j++)
            printf("%d ",buffer[i][j]);
        printf("\n");
    }

return 0;
}

P.S.

如果data.txt将包含not

代码语言:javascript
运行
复制
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4

代码语言:javascript
运行
复制
1 1 1    1
2   2   2 2
3       3 3 3
4 444    // the last two elements are absent

程序将正确读取第1行、第2行和第3行,第4行的输出为

代码语言:javascript
运行
复制
4 444 0 0 

它输出4,然后是444,然后是00:最后两个元素是‘0’,因为buffer已经被零初始化,所以所有元素都更改了它们的值,但最后两个元素仍然是零。

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16216799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档