C语言如何读取txt文本里面的内容?

我是这样写的,但是总是无法打开,请问这个是否用加文件路径,如果不加路径,文件放在哪里?if((fp=fopen("源程序.txt","r"))==NULL)printf(... 我是这样写的,但是总是无法打开, 请问这个是否用加文件路径,如果不加路径,文件放在哪里?
if((fp=fopen("源程序.txt","r"))==NULL)
printf("源程序无法打开!\n");
展开
 我来答
小星星教育知识分享
高粉答主

2019-12-05 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67136

向TA提问 私信TA
展开全部

C语言可以使用fopen()函数读取txt文本里。

示例:

#include <stdio.h>

FILE *stream, *stream2;

void main( void )

{

int numclosed;

/* Open for read (will fail if file "data" does not exist) */

if( (stream  = fopen( "data", "r" )) == NULL )

printf( "The file 'data' was not opened\n" );

else

printf( "The file 'data' was opened\n" );

/* Open for write */

if( (stream2 = fopen( "data2", "w+" )) == NULL )

printf( "The file 'data2' was not opened\n" );

else

printf( "The file 'data2' was opened\n" );

/* Close stream */

if(fclose( stream2 ))

printf( "The file 'data2' was not closed\n" );

/* All other files are closed: */

numclosed = _fcloseall( );

printf( "Number of files closed by _fcloseall: %u\n", numclosed );

}

扩展资料

使用fgetc函数

#include <stdio.h>

#include <stdlib.h> 

void main( void )

{

FILE *stream;

char buffer[81];

int  i, ch;

/* Open file to read line from: */

if( (stream = fopen( "fgetc.c", "r" )) == NULL )

exit( 0 );

 /* Read in first 80 characters and place them in "buffer": */

ch = fgetc( stream );

for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )

{

buffer[i] = (char)ch;

ch = fgetc( stream );

}

/* Add null to end string */

buffer[i] = '\0';

printf( "%s\n", buffer );

fclose( stream );

}

百度网友fc027fc
推荐于2017-09-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:783万
展开全部

 在C语言中,文件操作都是由库函数来完成的。

要读取一个txt文件,首先要使用文件打开函数fopen()。

fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。

其次,使用文件读写函数读取文件。

在C语言中提供了多种文件读写的函数: 
·字符读写函数 :fgetc和fputc
·字符串读写函数:fgets和fputs
·数据块读写函数:freed和fwrite
·格式化读写函数:fscanf和fprinf

最后,在文件读取结束要使用文件关闭函数fclose()关闭文件。


下面以格式化读写函数fscanf和fprintf为例,实现对文件A.txt(各项信息以空格分割)的读取,并将它的信息以新的格式(用制表符分割各项信息)写入B.txt,实现对A.txt的处理。


C语言源程序如下所示:

#include <stdio.h>
#include <stdlib.h>
#include  <assert.h>
typedef struct student{
        char name[32];
        int  no;
        char sex[16];
        float score;
} stu;

int main(int argc, char* argv[])
{
    //打开文件 
    FILE * r=fopen("A.txt","r");
    assert(r!=NULL);
    FILE * w=fopen("B.txt","w");
    assert(w!=NULL);
    
    //读写文件 
    stu a[128];
    int i=0;
    while(fscanf(r,"%s%d%s%f",a[i].name,&a[i].no,a[i].sex,&a[i].score)!=EOF)
    {
         printf("%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到显示器屏幕 
         fprintf(w,"%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到文件B.txt 
         i++;
    }  
    
    //关闭文件 
    fclose(r);
    fclose(w);
    
    system("pause");
    return 0;
}

编译运行后的结果如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
滟丽00
高粉答主

2019-05-07 · 繁杂信息太多,你要学会辨别
知道答主
回答量:1487
采纳率:0%
帮助的人:24.8万
展开全部

1、打开电脑上要读取的文本文件。

2、打开文本后,点击文本左上角的【文件】按钮。

3、点击【另存为】。这样就会保存本来的这个文本文件,生成一个新的c文件。

4、点击【保存类型-对应的下拉按钮】。

5、选择【C source file(*.c)】。这个就是我们需要转换成C格式的后缀。

6、选择后,点击【保存】。保存后我们即可正常读取该文件了。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wookink
推荐于2017-10-02 · TA获得超过142个赞
知道答主
回答量:92
采纳率:0%
帮助的人:52.3万
展开全部
如果不加路径,比如一个main.c文件的代码是这样的:
if((fp=fopen("源程序.txt","r"))==NULL)
printf("源程序无法打开!\n");
如果你是在调试时候运行的, 那么"源程序.txt"就是在main.c同一个文件夹下.如果是直接运行程序,则"源程序.txt"是在main.exe同一个文件夹下.

注意,如果指定文件的绝对路径,比如 d:\源程序.txt ,在代码中应该写成这样: d:\\源程序.txt

还有疑问请追问..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沉沉卡
2013-01-03 · TA获得超过132个赞
知道答主
回答量:77
采纳率:66%
帮助的人:19.2万
展开全部
亲 你得首先定义一个文件File 然后再判断是否open
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式