C语言中怎样打开一个文件后显示在屏幕上?
实现的方法和详细的操作步骤如下:
1、第一步,打开软件,在代码的第一行写头文件,然后在此处写#include
stdio.h,其中包含要在此头文件中调用的函数,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,在第二行中是主要功能,是程序执行的入口点。
int maihn(void),可以省略void,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,编写Main函数,必须在其后面添加大括号,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,调用printf()函数,此函数是在屏幕上输出一行文字,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,编写printf函数的格式,里面必须有双引号,外部必须用分号标记,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,加“return 0”, 就完成了,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,进行编译,运行结果将出现在屏幕上,见下图。这样,就解决了这个问题了。
c语言 如何打开一个TXT文件。
C语言,打开文件一个TXT文件,需要使用fopen()函数。
它的函数原型位FILE
*
fopen(const
char
*
path,const
char
*
mode);
如果文件顺利打开后,返回指向该流的文件指针就会。如果文件打开失败则返回NULL,并把错误代码存在errno中。
一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
mode有下列几种形态字符串:
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,允许读写数据,文件必须存在。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的EOF符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
wx
创建文本文件,只允许写入数据.[C11]
wbx
创建一个二进制文件,只允许写入数据.[C11]
w+x
创建一个文本文件,允许读写.[C11]
wb+x
创建一个二进制文件,允许读写.[C11]
w+bx
和”wb+x”相同[C11]
以x结尾的模式为独占模式,文件已存在或者无法创建(一般是路径不正确)都会导致fopen失败.文件以操作系统支持的独占模式打开
下面读取TXT文件的行数并把把TXT文件的内容存到数组中。
这里假设每行是一个字符串,每行不超过127个字符(用数组存字符串,最后一位存’\0’),选取fgets进行读取。
示例代码如下:
#include
#include
int main(int argc, char* argv) {
FILE* rf = fopen(“input.txt”,”r”);
char a[1024][128];
int i=0;
while(fgets(a[i],128,rf))i++;
int n=i;
printf(“行数:%d\n”,n);
fclose(rf);
i=0;
while(i
如何利用c语言打开文本文件?
C程序语言非常强大,通过打开文本的函数(里面的参数指出要打开文本的位置及文件名),即可打开相应的文本。
第一,包含的头文件:
#include stdio.h,这是一个输入输出函数,
第二,打开文本文件:
FILE *file = fopen(“c:\\1.txt”,”r”);代表C盘的文件,文件名为1.txt,r表示以只读的方式打开,
第二个参数表示打开方式,
“a” 表示追加方式打开,
“r” 表示以读方式打开,
“w” 表示以写方式打开,
第三,读入文本文件中的数据:
方法:
char s[10] = “”;
while (!feof(file))
fread(s,1,1,file);
通过fread函数对打开的文件进行读和写操作,也就是这样来改变文件的内容。
如何用C语言打开一个文件?
近用c语言做文件操作比较频繁,记几个常用的操作
获得文件大小:
fseek(fp, 0, SEEK_END);
int fileSize = ftell(fp);
rewind(fp);
读取指定位置的数据块:
fseek( fp,offset,SEEK_SET );
int num_read = fread(buf, 1, length, fp);
删除文件
int res = access( filename,0 ); // 判断文件是否存在
if ( res == 0 )
{
res = remove( filename );// 删除文件
return ( res ==0 );
}
在指定位置写入块数据:
fseek( fp, offset, SEEK_SET );
num_write = fwrite( buf, 1, n, fp );
打开文件方式中有一个比较特别的,如果 某文件中已经有了一部分数据,你需要继续在上面添加数据,但是是在指定位置添加,也就是说,仍然需要通过 fseek 找到写入位置,然后再 fwrite,这时候需要以 “rb+” 方式打开。而不能以”a”或者”ab+”方式。以”a”方式打开,fseek函数不起作用。
获得文件属性
struct stat st;
FILE *fp = fopen( filename.c_str(),”rb” );
if ( !fp )
{ // error
}
fstat( fp-_file, st );
遍历目录
std::string dirspec = dir + “\\*.*”;
struct _finddata_t filefind;
int done = 0;
intptr_t handle = 0;
if( ( handle = _findfirst(dirspec.c_str(),filefind) ) == -1 )
return IVS_FAIL;
IVS_RESULT res = IVS_OK, response =IVS_OK;
while( !(done=_findnext(handle,filefind)) )
{
if( !strcmp(filefind.name,”..”) || !strcmp(filefind.name,”.”) )
continue;
AdsFileInfo info;
if((_A_SUBDIR==filefind.attrib))
{
info._filename = filefind.name;
info._fileSize = filefind.size;
info._atime = filefind.time_access;
info._ctime = filefind.time_create;
info._mtime = filefind.time_write;
info._isdir = true;
}
else
{
std::string tmpFilename = dir + “\\”;
tmpFilename += filefind.name;
res = getFileInfo( tmpFilename, info );
response = (!SUCCESS(res))?res: response;
}
list.push_back( info );
}
_findclose(handle);