為了調試方便,我把你的文件路徑改了,你自己改下,已調試成功
在西湖等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供網站建設、做網站 網站設計制作按需求定制開發,公司網站建設,企業網站建設,品牌網站建設,成都營銷網站建設,成都外貿網站建設公司,西湖網站建設費用合理。
#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規定文件打開用函數fopen,關閉為fclose。
1、調用方式通常為:
代碼如下:
FILE
*fp;
fp=fopen(文件名,
打開方式);
2、參數說明:
文件名:
形如"myfile.dat"、"F:\data\myfile.dat"等等;
打開方式:
"r"(只讀)
為輸入打開一個文本文件
"w"(只寫)
為輸出打開一個文本文件
"a"(追加)
向文件文件尾添加數據
"rb"(只讀)
為輸入打開一個二進制文件
"wb"(只寫)
為輸出打開一個二進制文件
"r+"(讀寫)
為讀寫打開一個文本文件
"w+"(讀寫)
為讀寫建立一個新的文本文件
"a+"(讀寫)
為讀寫打開一個文本文件
"rb+"(讀寫)
為讀寫打開一個二進制文件
"wb+"(讀寫)
為讀寫建立一個新的二進制文件
"ab+"(讀寫)
為讀寫打開一個二進制文件
3、注意:
(1)用"r"方式打開的文件,不能向其輸入數據,并且該文件已存在,否則出錯;
(2)用"w"方式打開的文件,只能向該文件輸入數據,如果所打開的文件不存在,則在打開時新建一個以指定的名字命名的文件;如果指定文件存在,則在打開時將該文件刪去,然后新建一個新的文件;
(3)如果函數fopen打開文件出錯,則fopen返回一個空指針值NULL;
(4)在程序開始運行時,系統自動打開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;
}//全部行結束退出循環
//DelStr(outbuf,"刪除字符串"); //重載函數DelStr
//DelStr(outbuf,"要替換字符串","替換成字符串"); //重載函數DelStr
fprintf(fpo,"%s",outbuf);
}
//關閉文件
free(outbuf);
fclose(fpi);
fclose(fpo);
return 0;
}
這些都是c語言打開文件函數fopen的一個參數打開文件方式的值:
定義函數
file
*
fopen(const
char
*
path,const
char
*
mode);
函數說明
參數path字符串包含欲打開的文件路徑及文件名,參數mode字符串則代表著流形態。
mode有下列幾種形態字符串:
r
打開只讀文件,該文件必須存在。
r+
打開可讀寫的文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,只允許讀寫數據。
rt+
讀寫打開一個文本文件,允許讀和寫。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾后,即文件原先的內容會被保留。
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
wt+
讀寫打開或著建立一個文本文件;允許讀寫。
at+
讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字符串都可以再加一個b字符,如rb、w+b或ab+等組合,加入b
字符用來告訴函數庫打開的文件為二進制文件,而非純文字文件。不過在posix系統,包含linux都會忽略該字符。
由fopen()所建立的新文件會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)權限,此文件權限也會參考umask
值。
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
需要使用Windows API。主要用到了3個函數,CreateProcess、TerminateProcess、CloseHandle。
CreateProcess用來創建一個進程,可以用它來執行一個程序。TerminateProcess用來終止一個進程,關閉記事本。CloseHandle是用來關閉句柄的,主要是安全問題,加上就行。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語言打開記事本函數 c語言讀取記事本內容
文章源于:http://m.kartarina.com/article46/dodsghg.html
成都網站建設公司_創新互聯,為您提供域名注冊、企業網站制作、微信公眾號、全網營銷推廣、搜索引擎優化、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯