為了調(diào)試方便,我把你的文件路徑改了,你自己改下,已調(diào)試成功
在西湖等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計制作按需求定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,西湖網(wǎng)站建設(shè)費用合理。
#include stdio.h
#include stdlib.h
#define MAXSIZE 60
#define NUMSIZE 15
#define NAMESIZE 20
struct student
{
int order;
char num[NUMSIZE];
char name[NAMESIZE];
}stud[MAXSIZE];
void main(void)
{
int i;
int count = 0;
FILE *fp;
if ((fp = fopen("123.txt","r")) == NULL)
{
printf("不能打開文件!\n");
exit(0);
}
while (fscanf(fp, "%d%s%s", stud[count].order, stud[count].num, stud[count].name) != EOF)
{
count++;
}
for (i=0; icount; i++)
{
printf("%-5d %-20s %-20s\n", stud[i].order, stud[i].num, stud[i].name);
}
fclose(fp);
}
如果對你有所幫助請記得采納最佳答案,謝謝!
ANSI
C規(guī)定文件打開用函數(shù)fopen,關(guān)閉為fclose。
1、調(diào)用方式通常為:
代碼如下:
FILE
*fp;
fp=fopen(文件名,
打開方式);
2、參數(shù)說明:
文件名:
形如"myfile.dat"、"F:\data\myfile.dat"等等;
打開方式:
"r"(只讀)
為輸入打開一個文本文件
"w"(只寫)
為輸出打開一個文本文件
"a"(追加)
向文件文件尾添加數(shù)據(jù)
"rb"(只讀)
為輸入打開一個二進制文件
"wb"(只寫)
為輸出打開一個二進制文件
"r+"(讀寫)
為讀寫打開一個文本文件
"w+"(讀寫)
為讀寫建立一個新的文本文件
"a+"(讀寫)
為讀寫打開一個文本文件
"rb+"(讀寫)
為讀寫打開一個二進制文件
"wb+"(讀寫)
為讀寫建立一個新的二進制文件
"ab+"(讀寫)
為讀寫打開一個二進制文件
3、注意:
(1)用"r"方式打開的文件,不能向其輸入數(shù)據(jù),并且該文件已存在,否則出錯;
(2)用"w"方式打開的文件,只能向該文件輸入數(shù)據(jù),如果所打開的文件不存在,則在打開時新建一個以指定的名字命名的文件;如果指定文件存在,則在打開時將該文件刪去,然后新建一個新的文件;
(3)如果函數(shù)fopen打開文件出錯,則fopen返回一個空指針值NULL;
(4)在程序開始運行時,系統(tǒng)自動打開3個標準文件:標準輸入(stdin),標準輸出(stdout),標準出錯輸
出(stderr)。如果要使用輸入輸出終端,則不需要打開,可以直接使用,如fputc(stdout,'a');向屏幕輸出字符a。
#include stdlib.h
#include stdio.h
#define Line 1024
int main()
{
//文件名及文件指針
char infile[]="D:\\Wtmp\\1.txt";
char outfile[]="D:\\Wtmp\\2.txt";
FILE *fpi,*fpo;
//暫存器
char *outbuf;
outbuf = (char *)malloc(Line*sizeof(char));
if( ( fpi=fopen(infile,"r") ) == NULL )
{
printf("文件打開%s失敗\n",infile);
return 3;
}
if( ( fpo=fopen(outfile,"w") ) == NULL )
{
printf("文件打開%s失敗\n",outfile);
return 3;
}
while(1)
{
//outbuf要干凈
//memset(outbuf,0,Line);
outbuf=0;
fprintf(fpo,"%s",outbuf);
if (fgets(outbuf,Line,fpi)==NULL)
{
break;
}//全部行結(jié)束退出循環(huán)
//DelStr(outbuf,"刪除字符串"); //重載函數(shù)DelStr
//DelStr(outbuf,"要替換字符串","替換成字符串"); //重載函數(shù)DelStr
fprintf(fpo,"%s",outbuf);
}
//關(guān)閉文件
free(outbuf);
fclose(fpi);
fclose(fpo);
return 0;
}
這些都是c語言打開文件函數(shù)fopen的一個參數(shù)打開文件方式的值:
定義函數(shù)
file
*
fopen(const
char
*
path,const
char
*
mode);
函數(shù)說明
參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
mode有下列幾種形態(tài)字符串:
r
打開只讀文件,該文件必須存在。
r+
打開可讀寫的文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,只允許讀寫數(shù)據(jù)。
rt+
讀寫打開一個文本文件,允許讀和寫。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾,即文件原先的內(nèi)容會被保留。
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾后,即文件原先的內(nèi)容會被保留。
wb
只寫打開或新建一個二進制文件;只允許寫數(shù)據(jù)。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
wt+
讀寫打開或著建立一個文本文件;允許讀寫。
at+
讀寫打開一個文本文件,允許讀或在文本末追加數(shù)據(jù)。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數(shù)據(jù)。
上述的形態(tài)字符串都可以再加一個b字符,如rb、w+b或ab+等組合,加入b
字符用來告訴函數(shù)庫打開的文件為二進制文件,而非純文字文件。不過在posix系統(tǒng),包含linux都會忽略該字符。
由fopen()所建立的新文件會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)權(quán)限,此文件權(quán)限也會參考umask
值。
C語言,打開文件一個TXT文件,需要使用fopen()函數(shù)。
它的函數(shù)原型位FILE
*
fopen(const
char
*
path,const
char
*
mode);
如果文件順利打開后,返回指向該流的文件指針就會。如果文件打開失敗則返回NULL,并把錯誤代碼存在errno中。
一般而言,打開文件后會做一些文件讀取或?qū)懭氲膭幼?,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()后作錯誤判斷及處理。
參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
mode有下列幾種形態(tài)字符串:
r
以只讀方式打開文件,該文件必須存在。
r+
以可讀寫方式打開文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,允許讀寫數(shù)據(jù),文件必須存在。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾,即文件原先的內(nèi)容會被保留。(EOF符保留)
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾后,即文件原先的內(nèi)容會被保留。
(原來的EOF符不保留)
wb
只寫打開或新建一個二進制文件;只允許寫數(shù)據(jù)。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數(shù)據(jù)。
wx
創(chuàng)建文本文件,只允許寫入數(shù)據(jù).[C11]
wbx
創(chuàng)建一個二進制文件,只允許寫入數(shù)據(jù).[C11]
w+x
創(chuàng)建一個文本文件,允許讀寫.[C11]
wb+x
創(chuàng)建一個二進制文件,允許讀寫.[C11]
w+bx
和"wb+x"相同[C11]
以x結(jié)尾的模式為獨占模式,文件已存在或者無法創(chuàng)建(一般是路徑不正確)都會導致fopen失敗.文件以操作系統(tǒng)支持的獨占模式打開
下面讀取TXT文件的行數(shù)并把把TXT文件的內(nèi)容存到數(shù)組中。
這里假設(shè)每行是一個字符串,每行不超過127個字符(用數(shù)組存字符串,最后一位存'\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("行數(shù):%d\n",n);
fclose(rf);
i=0;
while(i
需要使用Windows API。主要用到了3個函數(shù),CreateProcess、TerminateProcess、CloseHandle。
CreateProcess用來創(chuàng)建一個進程,可以用它來執(zhí)行一個程序。TerminateProcess用來終止一個進程,關(guān)閉記事本。CloseHandle是用來關(guān)閉句柄的,主要是安全問題,加上就行。Sleep(3000)表示暫停3秒鐘。
#include?windows.h
int?main()
{
char?command[]?=?"notepad.exe";
STARTUPINFO?si?=?{?sizeof(si)?};???
PROCESS_INFORMATION?pi;???
BOOL?ret;
si.dwFlags?=?STARTF_USESHOWWINDOW;???
si.wShowWindow?=?TRUE;
ret?=?CreateProcess(NULL,?command,?NULL,?NULL,?FALSE,?CREATE_NEW_CONSOLE,?NULL,?NULL,?si,?pi);
if?(ret)
{
Sleep(3000);
TerminateProcess(pi.hProcess,?0);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
return?0;
}
文章標題:c語言打開記事本函數(shù) c語言讀取記事本內(nèi)容
文章源于:http://chinadenli.net/article46/dodsghg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、企業(yè)網(wǎng)站制作、微信公眾號、全網(wǎng)營銷推廣、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)