怎么用C语言读取 TXT文件中的字符串

如读取
>名字</
>jordan</
名字
jordan

可以使用输入输出重定向来将TXT文本中的字符内容导入程序中,或者使用标准C库函数:fopen()和fgetc();
先使用fopen()函数打开TXT文本文件,然后使用fgetc读取文本文件中的字符。读取全部文本中全部字符可以使用一个while循环加判断是否读取到文件结尾来实现:
char ch;
while((ch= fgetc(fp)) != EOF)

这样当读取到文件结尾时,while循环就会终止。

C语文编写编译如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINE 100000
#define BUFLEN  1024
int main()
{
FILE *file;
char buf[BUFLEN];
int len=0,i=0;
char *array[MAXLINE];

file=fopen("test.txt","r");//打开TXST.TxT文件
if(!file)return -1;
while(fgets(buf,BUFLEN,file))//读取TXT中字符
{
 len=strlen(buf);
 array[i]=(char*)malloc(len+1);
 if(!array[i])break;
 strcpy(array[i++],buf);
}

fclose(file);
i--;
while(i>=0&&array[i])
{
 printf("%s\n",array[i]);//打印test文档的字符
 free(array[i--]);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-11

1、首先我们打开电脑里的VS软件,使用VS新建空工程,直接点击确定。

2、然后我们点击界面上方新建选项,再点击添加选项再点击新建项进行文件添加。

3、新建c文件,用于C语言编译器,输入main.c文件。

4、然后我们在文件中输入图示代码。

5、编译完成后,运行exe程序,执行后显示console程序即可发现此时显示出了txt读取的信息。

本回答被网友采纳
第2个回答  推荐于2017-09-11

学文件指针了没?

#include <stdilo.h>
int main(void)
{
    FILE *p;
    p = fopen("a.txt", "r");       //前提是你要在你的工作目录里有一个有内容的a.txt文件,自己创建一下吧,写两句(不要整汉语哈)。
    while(!feof(p))
    {
        putchar(fgetc(p));
    }
    fclose(p);
    return 0;
}

追问

学了,就是想读出TXT文件中的 特定字符串中的 信息,例如>john</,中的john

追答#include <stdilo.h>
int main(void)
{
    FILE *p;
    p = fopen("a.txt", "r");    
    while(!feof(p))
    {
if(fgetc(p) == '>')
{
while(fgetc(p) != '<')
{
putchar(fgetc(p));
}
return 0;
}
    }
    fclose(p);
    return 0;
}

试试吧 ,我没编译直接写的

追问

那如果是三行呢,该怎么修改下呀,大神
>johnjordanmingren</

结果
john
jordan
mingren

追答#include <stdilo.h>
int main(void)
{
    FILE *p;
    p = fopen("a.txt", "r");    
    while(!feof(p))
    {
        if(fgetc(p) == '>')
        {
            while(fgetc(p) != '<')
            {
                putchar(fgetc(p));
            }
            printf("\n");
        }
    }
    fclose(p);
    return 0;
}

追问

您给的这个代码在读英文的时候,总是 丢字母,读取中文的时候是乱码,不知道是哪里出问题了

追答

#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;

}

昨天我说了没编译估计会出错,这次没事了运行通过

只能英文,不能中文

本回答被提问者采纳
第3个回答  2015-01-25
#include<stdio.h>
#include<conio.h>
int main()
{
    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;
}

本回答被网友采纳