我在使用C语言时遇到了一些麻烦..

我有一个文件txt与表单中的各种行:

F   65  S   4   1   139.56  3704.26

和我的计划:

p = fopen("dados.txt", "r");

if ( p == NULL) {
    printf("\n\nNao foi possivel abrir o arquivo.\n");
    exit(1);
}else{
      while ( !feof(p) ){
      fscanf(p,"%c %d %c %d %d %f %f",
          &sexo,&idade,&estadoCivil,&numFilhos,&freq,&mediaGasto,&mediaSalarial);

      printf("%c %d %c %d %d %f %f\n",
          sexo,idade,estadoCivil,numFilhos,freq,mediaGasto,mediaSalarial);
      }

回报是:

在此输入图像描述

看起来不好......

如果我将fscanf:%c更改为%f

回报是:

在此输入图像描述

看起来很棒,但变量idade总是0 ......:S

wtf我必须做什么?

===============>>#1 票数:4 已采纳

您必须在scanf调用中添加换行符:

  fscanf(p,"%c %d %c %d %d %f %f\n",
      &sexo,&idade,&estadoCivil,&numFilhos,&freq,&mediaGasto,&mediaSalarial);

如果没有scanf的换行符,第一行将是正确的,但是以下行将输入中的换行符分配给sexo

  ask by Shermano translate from so

未解决问题?本站智能推荐:

2回复

使用scanf从C中的txt文件读取

我有一个txt文件,我想从中读取。 我知道我将必须阅读20行(每行包含3个数字变量,例如10 5 6等) 不幸的是,它不起作用。 我想浏览文件并使用sscanf(fid,"%d%d%d",&x,&y,&z) 20次。 如果有人可以告诉我如何使它工作,我将不胜
2回复

在C中使用fscanf从.txt文件读取

我的任务是从txt文件中获取输入,然后将其读入struct数组的各个部分,然后对其进行操作,但是从文件中读取时遇到了麻烦。 我的结构如下: 在我的主要范围内:我将MAX定义为100 这是我们要从中读取的txt文件: 所以我在fscanf精度上遇到了一些麻烦。 要检
1回复

从C中的txt文件读取链表

我正在尝试从文件中读取链接列表,但没有运气。 使用fprintf可以正确保存Struct(无法使其与fwrite一起使用)。 这是我的结构: 我正在使用此功能将链接列表保存到文件中:编辑:在对其他功能进行一些更改后,此崩溃。 并尝试以此从文件中读取它: 知道为什么它什
1回复

我如何使用scanf读取C中的txt文件

因此,我必须使用'<'运算符从命令行读取txt文件。 例如,我在终端中的可执行文件将是: 。\\ file book1.csv output.csv <find.txt 其中book1.csv是我的argv [1],其中我使用fscanf插入了数据,output.csv
1回复

如何从C中的用户输入读取.txt文件

我知道如何对程序进行核对以接收文件,但是当我尝试使用scanf采取类似策略时,什么也没发生。 我的意思是,我进行了一次错误检查,看是否存在并且格式是否正确,但是每次我输入文件名时,它都不会在scanf下方打印printf语句。 这是为什么? 我还发现我正在打开文件,但是while语句是无限
5回复

如何从.txt文件中的值读取到C语言程序中

我无法将txt文件中的值读取到程序中。 我给定的值是坐标(x,y),后跟2个空格。 假定最大点数为100,那么如何读取输入,以便我的程序每行仅读取给定数量的值? 到目前为止,我的程序旨在计算两点之间的距离,并使用总和找到周长。 到目前为止,我能想到的是: 到目前为止,这也是
3回复

C如何分割从.txt文件scanf中读取的变量

有人可以帮我解决这个问题吗? 我有一个.txt文件,正在通过fopen使用C进行读取。 我可以将文本显示为屏幕上的变量,这很好。 但是,我从文件中读取的文本以逗号分隔。 如何将文本文件中的字符串分成两个变量而不是一个? 例 用户名密码 我希望最终输出是 var1
4回复

在C中读取和打印.txt文件行的最清晰方法

有很多方法描述如何使用各种方法在此站点上打印文本文件的行: Posix风格 , 读取IP地址 , 固定线长 。 它们似乎都是根据具体的例子量身定制的。 如果能够使用最清晰 , 最简洁 , 最简单的方法,那就太棒了: 将任何文本文件的每一行打印到屏幕上。
1回复

我怎样才能从C中的txt文件中仅读取某些行?

我有这个文件,我只想将不以//开头的行保存在变量中: 我不确定我该怎么做。 我已经尝试过fscanf和fgets,但是我事先没有做对,谢谢
3回复

如何使用C逐行读取txt文件(int,未知长度)?

我想合并文本文件中的数据排序。(逐行) 为了使我的合并排序正常工作,我必须逐行读取数据,然后将它们放入数组以对其进行排序。 (我们只知道每行最多有10000个整数)因此,我完成了研究并尝试了以下方法: 1.使用fgets和strtok / strtol。 问题:我不知道cha