㈠ c語言 如何讀取中文字元串
可以使用輸入輸出重定向來將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--]);
}
}
㈡ 在c語言中怎樣打開一個文本文檔
這些都是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語言讀取文本文件
1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。
2、常式:
#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.txt","r");//打開輸入文件
FILE*fp2=fopen("output.txt","w");//打開輸出文件
if(fp1==NULL||fp2==NULL){//若打開文件失敗則退出
puts("不能打開文件!");
rturn0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串
printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數
fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return0;
}
㈣ 讀入一篇中文文檔,怎麼用C語言實現段落首行縮進兩個字程序是什麼啊
檢查到 時 多列印四個空格就可以了。 兩個漢字寬度等於四納滲個空格。
可以用fgets。
FILE*fp=fopen("激則in.txt","r");
chars[1000];
while(fgets(s,1000,fp))
printf("%s",s);//每行前面洞鉛脊加四個空格。
fclose(fp);
㈤ C語言頭文件大全
C系統提供了豐富的系統文件,稱為庫文件,C的庫文件分為兩類,一類是擴展名為".h"的文件,稱為頭文件,在前面的包含命令中我們已多次使用過。在".h"文件中包含了常量定義、 類型定義、宏定義、函數原型以及各種編譯選擇設置等信息。另一類是函數庫,包括了各種函數的目標代碼,供用戶在程序中調用。 通常在程序中調用一個庫函數時,要在調用之前包含該函數原型所在的".h" 文件。
下面給出Turbo C的全部".h"文件。
Turbo C頭文件
ALLOC.H 說明內存管理函數(分配、釋放等)。
ASSERT.H 定義 assert調試宏。
BIOS.H 說明調用IBM—PC ROM BIOS子程序的各個函數。
CONIO.H 說明調用DOS控制台I/O子程序的各個函數。
CTYPE.H 包含有關字元分類及轉換的名類信息(如 isalpha和toascii等)。
DIR.H 包含有關目錄和路徑的結構、宏定義和函數。
DOS.H 定義和說明MSDOS和8086調用的一些常量和函數。
ERRON.H 定義錯誤代碼的助記符。
FCNTL.H 定義在與open庫子程序連接時的符號常量。
FLOAT.H 包含有關浮點運算的一些參數和函數。
GRAPHICS.H 說明有關圖形功能的各個函數,圖形錯誤代碼的常量定義,正對不同驅動程序的各種顏色值,及函數用到的一些特殊結構。
IO.H 包含低級I/O子程序的結構和說明。
LIMIT.H 包含各環境參數、編譯時間限制、數的范圍等信息。
MATH.H 說明數學運算函數,還定了 HUGE VAL 宏, 說明了matherr和matherr子程序用到的特殊結構。
MEM.H 說明一些內存操作函數(其中大多數也在STRING.H中說明)。
PROCESS.H 說明進程管理的各個函數,spawn…和EXEC …函數的結構說明。
SETJMP.H 定義longjmp和setjmp函數用到的jmp buf類型,說明這兩個函數。
SHARE.H 定義文件共享函數的參數。
SIGNAL.H 定義SIG[ZZ(Z] [ZZ)]IGN和SIG[ZZ(Z] [ZZ)]DFL常量,說明rajse和signal兩個函數。
STDARG.H 定義讀函數參數表的宏。(如vprintf,vscarf函數)。
STDDEF.H 定義一些公共數據類型和宏。
STDIO.H 定義Kernighan和Ritchie在Unix System V 中定義的標准和擴展的類型和宏。還定義標准I/O 預定義流:stdin,stdout和stderr,說明 I/O流子程序。
STDLIB.H 說明一些常用的子程序:轉換子程序、搜索/ 排序子程序等。
STRING.H 說明一些串操作和內存操作函數。
SYS\STAT.H 定義在打開和創建文件時用到的一些符號常量。
SYS\TYPES.H 說明ftime函數和timeb結構。
SYS\TIME.H 定義時間的類型time[ZZ(Z] [ZZ)]t。
TIME.H 定義時間轉換子程序asctime、localtime和gmtime的結構,ctime、 difftime、 gmtime、 localtime和stime用到的類型,並提供這些函數的原型。
VALUE.H 定義一些重要常量,包括依賴於機器硬體的和為與Unix System V相兼容而說明的一些常量,包括浮點和雙精度值的范圍。
㈥ 在C語言中,怎樣讀取文本文檔的一個中文的字元串
就當一般的字元串一個字一個字地讀,讀到逗號為止。跟自己實現fgets()函數差不多。
enum { SIZE = 1024 };
char str[SIZE]; /* 聲明一個字元數組 */
/* 下面讀到逗號或數組最大值時停止 */
for (i = 0; i < SIZE - 1 && (c = getchar() ) != ','; ++i)
str[i] = c;
str[i] = '\0';