C语言如何读取TXT中的中文字符串

例如我想读取:
!>乔丹
?>篮球
结果:
乔丹
篮球

#include <stdio.h>
int main(void)
{
    FILE *p;
    char ch;
    p = fopen("a.txt", "r");    
    while(!feof(p))
    {
        if(fgetc(p) == '>')
        {
            while((ch = fgetc(p)) != '<')
            {
                putchar(ch);
            }
            printf("\n");
        }
     }
     fclose(p);
     return 0;
}
//昨天我说了没编译估计会出错,这次没事了运行通过
//还有只能读英文,乔丹不行,这是因为c编译器不支持unicode编码,char类型的是只能表示128个字符,Unicode 是两个字节,可以表示汉字。

追问

那如果是要读取

经理

结果:

经理

应该怎么程序应该怎么改呀

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-31
#include<stdio.h>
#include<conio.h>
int main()
{
int i;
char c[100];
FILE *p1=fopen("x.txt","r");
if(!p1)
printf("打开失败\n");
for(i=0;i<100;i++)
{
fscanf(p1,"%c",&c[i]);
printf("%c",c[i]);
}
putchar('\n');
fclose(p1);
p1=0;
return 0;
}
//望采纳本回答被提问者采纳
第2个回答  2020-05-23
#include <stdio.h>
int main(void)
{
FILE *p;
char ch;
p = fopen("a.txt", "r");
while(!feof(p))
{
if(fgetc(p) == '>')
{
while((ch = fgetc(p)) != '<')
{
putchar(ch);
}
printf("\n");
}
}
fclose(p);
return 0;
}
//昨天我说了没编译估计会出错,这次没事了运行通过
//还有只能读英文,乔丹不行,这是因为c编译器不支持unicode编码,char类型的是只能表示128个字符,Unicode 是两个字节,可以表示汉字。
相似回答