用c语言读取一个txt文件?

发布网友 发布时间:2022-04-23 13:24

我来回答

2个回答

热心网友 时间:2023-08-16 04:54

如果预知前面的是英文后面的是中文,即可分开:

#include<stdio.h>

#define N 100

void main() { FILE *fp; char s[256],y[N][20],h[N][20]; int i,n;

  if ( fp=fopen("c:\\data\\text.txt","r") ) {

    n=0;

    while ( !feof(fp) ) {

      fgets(s,256,fp); sscanf("%s%s",y[n],h[n]); n++; if ( n>=N ) break;

    }

    fclose(fp);

    printf("英文: "); for ( i=0;i<n;i++ ) printf("%s ",y[i]); printf("\n");

    printf("中文: "); for ( i=0;i<n;i++ ) printf("%s ",h[i]); printf("\n");

  } else printf("无法打开文件读取。\n");

}

如果中英文顺序不一定,且不会有中英文混合单词:

#include<stdio.h>

#include<string.h>

#define N 100

void main() { FILE *fp; char s[256],y[N][20],h[N][20]; int i,n;

  if ( fp=fopen("c:\\data\\text.txt","r") ) {

    n=0;

    while ( !feof(fp) ) {

      fgets(s,256,fp); sscanf("%s%s",y[n],h[n]);

      if ( y[n][0]<0 ) { strcpy(s,y[n]);strcpy(y[n],h[n]);strcpy(h[n],s); } //汉字字符ASCII码小于0

      n++; if ( n>=N ) break;

    }

    fclose(fp);

    printf("英文: "); for ( i=0;i<n;i++ ) printf("%s ",y[i]); printf("\n");

    printf("中文: "); for ( i=0;i<n;i++ ) printf("%s ",h[i]); printf("\n");

  } else printf("无法打开文件读取。\n");

}

追问为什么我的中文输出来是乱码
英文单词是:abandon 相应的中文意思是:鏀惧纯

追答用记事本将文件另存为ansi编码文件,有可能当前文本文件是UTF-8编码的。

热心网友 时间:2023-08-16 04:54

/*假设你的数据文件是d:\ttt.txt
用循环把数字读到数组a里面顺便显示出来 */
#include <stdio.h>
int main()
{
double a[100];
int i=0;
FILE* fp;
if((fp=fopen("d:\\ttt.txt","r"))==0)
{
printf("无文件!!\n");
return -1;
}
while(!feof(fp))
{
fscanf(fp,"%lf",&a[i]);
printf("%lf\n",a[i]);
i++;
}
fclose(fp);
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com