主题:[原创]fscanf函数实现文本文件数据按分隔符分隔数据(按行和列)
//zlhex@163.com
#include <stdio.h>
#include <string.h>
void main()
{
FILE *fp;
char fn[256],str1[100],str2[100];
int i;
printf("Input file name:\n");
scanf("%s",fn);
printf("\n");
fp = fopen(fn,"r");
if(fp)
{
fscanf(fp,"%*[,;\"| \t\n\r]");//跳过前导空格和分隔符
str2[0]='\0';
while(fscanf(fp,"%[^,;\"| \t\n\r]%[,;\"| \t\n\r]",str1,str2)!=-1)//按逗号,分号,引号,空格,TAB键等分隔字符串
{
printf("%s ",str1);//列增加
[b]if(strchr(str2,'\n')) printf("\n");[/b]//行增加
str2[0]='\0';
}
fclose(fp);
}
}
在格式字符串"%[^,;\"| \t\n\r]%[,;\"| \t\n\r]"中添加其他分隔符即可实现任意字符
对字符串的分隔。进一步修改该代码,便可实现将结果添加到列表控件中,实现更多的
功能。。。
#include <stdio.h>
#include <string.h>
void main()
{
FILE *fp;
char fn[256],str1[100],str2[100];
int i;
printf("Input file name:\n");
scanf("%s",fn);
printf("\n");
fp = fopen(fn,"r");
if(fp)
{
fscanf(fp,"%*[,;\"| \t\n\r]");//跳过前导空格和分隔符
str2[0]='\0';
while(fscanf(fp,"%[^,;\"| \t\n\r]%[,;\"| \t\n\r]",str1,str2)!=-1)//按逗号,分号,引号,空格,TAB键等分隔字符串
{
printf("%s ",str1);//列增加
[b]if(strchr(str2,'\n')) printf("\n");[/b]//行增加
str2[0]='\0';
}
fclose(fp);
}
}
在格式字符串"%[^,;\"| \t\n\r]%[,;\"| \t\n\r]"中添加其他分隔符即可实现任意字符
对字符串的分隔。进一步修改该代码,便可实现将结果添加到列表控件中,实现更多的
功能。。。