怎么用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;
}

本回答被网友采纳

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

c语言如何读写txt文件
使用C语言的文件操作函数可以读写txt文件,如果使用相对路径,文件必须放在程序相同的文件夹内。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fp...

C语言中从.txt文件中按行读取字符串至数组中,怎么写?
int i = 0, j;FILE *fp;\/\/文件指针 fp = fopen("in.txt", "r");\/\/以文本方式打开文件。if(fp == NULL) \/\/打开文件出错。return -1;while(fscanf(fp, "%d", &v[i]) != EOF) \/\/读取数据到数组,直到文件结尾(返回EOF)i++;fclose(fp);\/\/关闭文件 for(j = 0; j < i...

C语言,怎么用strchr查找txt中的内容?
如果要读取txt文件中特定的内容,可以使用标准库函数fgets进行逐行读取,然后使用字符串处理函数(如strstr)或正则表达式对每行进行匹配。代码如下:```c include <stdio.h> include <string.h> int main(){ FILE* fp = fopen("input.txt", "r");char* pattern = "No";char line[1024];while...

c语言问题 如何从txt文本判断读取字符串是否是数字字符串,提取数字字 ...
保存数字的新文件名 *\/ char chr_read; \/* 临时读取出来的字符 *\/ \/* 换行标记,如果值为1表示新文件内容需要换行,为0表示不需要换行 *\/ unsigned char uchr_next_line = 0; unsigned char uchr_number = 0; \/* 如果数字一次都没出现过则为0,否则为1 *\/ FILE* p_file_source;...

用C语言怎么提取文本文档中间的字符串??
fgets 3次就能读到你需要的一行内容,再去掉"f:\\音乐\\"这部分 就得到你要的内容了。

如何用C语言读取.txt文件中的例如英文数字等字符并以十六进制形式输出...
include<stdlib.h> include<string.h> void change(char *str);void main(){ FILE *p;char str[256];p = fopen("D:\\\\ee.txt","r");while(!feof(p)){ fgets(str,sizeof(str),p);change(str);} \/*测试过%x可以输出字符的16进制数 char a = 'A';printf("%d",a);printf("%x"...

如何用c语言从txt文件中读出多行数据,并且算出每行数据之和,最后输出...
1)打开文件 FILE *r = fopen("文件", rb);2) 打开创建一个txt文件 FILE * w = fopen("txt", wb);3) 循环的以行为单位读取,直到文件结束 fgetline(r, buf, sizeof(buf), '\\n');解析行字符串buf, 累加数字求和 这里涉及到字符串的一些操作,及字符转数字问题 求的和写入txt文件...

在C语言中,怎样读取文本文档的一个中文的字符串?
就当一般的字符串一个字一个字地读,读到逗号为止。跟自己实现fgets()函数差不多。enum { SIZE = 1024 };char str[SIZE]; \/* 声明一个字符数组 *\/ \/* 下面读到逗号或数组最大值时停止 *\/ for (i = 0; i < SIZE - 1 && (c = getchar() ) != ','; ++i)str[i] = c;str...

C语言中怎么读取文本txt中既有汉字又有数字还有字母?请高手跟我写一下...
fp = fopen ("c:\\\\test.txt","r");fseek(fp, 0L, SEEK_END); \/\/文件指针移到文件尾 nLen = ftell(fp); \/\/得到当前指针位置, 即是文件的长度 fseek(fp, 0, SEEK_SET); \/\/文件指针移到文件头 \/\/动态申请空间, 为保存字符串结尾标志\\0, 多申请一个字符的空间 char *pchBuf = ...

相似回答