wincc读取text文件

我初学c,还不太会用,用下面这个函数读取文本文件中的数据,但是每次只能读一部分,不能把每行数据都读完,如何能控制读取每一行的全部数据,并且读完所有的行?
 我每行的数据格式是这样的:1,01107,煤气锅炉房,10,1,%,0,40,0,0.50,0.50,0.50

 #pragma option(mbcs)
 #include "apdefap.h"
 void onClick(char*  lpszPictureName,char* lpszObjectName,char*  lpszPropertyName)
 {
 FILE * datei;
 char t[20];
 char x[20];
 char*  z;
 datei=fopen("D:\\aa.txt","r");
 if(datei!=NULL)
 {
 z=fgets(t,20,datei);
 strncpy(&x[0],&t[0],strlen(&t[0])-1);
 SetTagChar("text1",x);
 z=fgets(t,20,datei);
 SetTagChar("text2",x);
 }
 fclose(datei);
 }

最佳答案

楼主可以用fscanf函数来读取一行文本,格式字符串可以"%[^\n]",表示读文本直到回车符才停止,这样不论一行文本有多长都可以读完整。
   例如:fscanf(datei,"%[^\n]",t);  读取文件datei从当前位置直到回车符,并将结果写到t字符数组,楼主的程序中繁琐了点,还有点错误。
 =====================
 float int 也是可以的写到数组里面去的。先读一行数据到t数组。用sscanf(t,"%d,%f",&a,&b)将t字符串中的数据按照格式输出到相应的变量a和b。不过要注意“”里面的格式字符串必须和t数组的格式相匹配。

提问者对于答案的评价:
我试试

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc277238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐