关于读取txt中不同类型变量的问题

Civiano 2013-01-16 04:45:59
txt文件中,每行是一个三元组
int int double
如:10 20 1.34
我想每次读入一行,分别存储到int a ,int b,double c中


求教啊!
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MoreWindows 2013-01-16
  • 打赏
  • 举报
回复
“ txt文件中,每行是一个三元组 int int double 如:10 20 1.34 我想每次读入一行,分别存储到int a ,int b,double c中 ” 用重定向技术吧,最方便。 重定向后,直接scanf("%d %d %lf", &a, &b, &c);即可。 重定向可以参考《进程通信之二 管道技术第一篇 输入输出的重定向》 http://blog.csdn.net/morewindows/article/details/7390350
zslInSz 2013-01-16
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <sys/uio.h>
int main()
{
   char msg[50]={0};
   FILE* filefd;
   int wrflag=0;

   if((filefd=fopen("tmp.txt","a+"))==NULL)
   {
    printf("creat file is err!\n");
    return 0;
   }
   fgets(msg,50,filefd);
//   fflush(filefd);
   char *p;
   char s[]=" ";
   printf("%s",strtok(msg,s));
   while((p=strtok(NULL,s)))
      printf("%s",p);
   fclose(filefd);
   return 0;
}
修改下就可以使用了
Joseph_ 2013-01-16
  • 打赏
  • 举报
回复
#include<stdio.h> #include<malloc.h> #include<stdlib.h> /*文件内容格式: 1 1 1 2 2 2 3 3 3 ..... */ int main() { int a,b; double c; FILE * fp = fopen("test.dat","r"); if(!fp) { printf("file open error\n"); exit(-1); } while(fscanf(fp,"%d%d%lf",&a,&b,&c) != EOF) printf("%d\t%d\t%lf\n",a,b,c); return 0; }
scream7 2013-01-16
  • 打赏
  • 举报
回复
引用 4 楼 scream7 的回复:
C/C++ code?12345FILE *fp;int a;int b;double c;fscanf(fp,"%d %d %lf",a,&b,&c)
糗了,别用这方法,错的
scream7 2013-01-16
  • 打赏
  • 举报
回复

FILE *fp;
int a;
int b;
double c;
fscanf(fp,"%d %d %lf",a,&b,&c)
漫步者、 2013-01-16
  • 打赏
  • 举报
回复
用sprintf读取就可以了
derekrose 2013-01-16
  • 打赏
  • 举报
回复
txt默认的应该都是字符串吧 我记得可能不太清楚
ardayoyo 2013-01-16
  • 打赏
  • 举报
回复
不难吧 1、读一行 2、按空格分成三个字符串 3、分别作 atoi 和 atof即可

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧