其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp
char cl[100]
if((fp=fopen("1.txt","r"))==NULL)
exit(1)
while(fscanf(fp,"%s",cl)==1)
printf("%s \n",cl)
if(fclose(fp)!=0)
exit(1)
return 0
}
C语言是目前世界上流行、使用最广泛的面向过程的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
可以使用输入输出重定向来将TXT文本中的字符内容导入程序中,或者使用标准C库函数:fopen()和fgetc()先使用fopen()函数打开TXT文本文件,然后使用fgetc读取文本文件中的字符。读取全部文本中全部字符可以使用一个while循环加判断是否读取到文件结尾来实现:
char
ch;
while((ch=
fgetc(fp))
!=
EOF)
这样当读取到文件结尾时,while循环就会终止。
C语文编写编译如下:
#include
#include
#include
#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--])
}
}