本文目录一览:
- 1、在C语言中怎么将文件中文字读出。。谢了哦
- 2、C语言如何从字符串中读入字符
- 3、c语言 怎么读文件中的汉字
- 4、C语言或C++如何读写汉字,比如一个文本中有很多汉字,如何读取后全部显示出来
- 5、C语言中int 和char怎么读?
- 6、C语言中如何读取文件中的汉字并将其存入数组中?
在C语言中怎么将文件中文字读出。。谢了哦
#includestdio.h
int main()
{
char str[10];
freopen("in.txt","r",stdin);
scanf("%s",str);
printf("%s\n",str);
fclose(stdin);
return 0;
}
你只要使用了freopen,剩下的就和以前的写法一样。该怎么写就怎么写。只要在源文件的目录下建一个in.txt的文件,把要读入的数据放进去就行了
C语言如何从字符串中读入字符
在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。
其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。
c语言 怎么读文件中的汉字
字符读写函数fgetc和fputc
字符读写函数是以字符(字节)为单位的读写函数。 每次可从文件读出或向文件写入一个字符。
1) 读字符函数fgetc
fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:
字符变量=fgetc(文件指针);
例如:
ch=fgetc(fp);
其意义是从打开的文件fp中读取一个字符并送入ch中。
对于fgetc函数的使用有以下几点说明:
在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。
读取字符的结果也可以不向字符变量赋值。例如:fgetc(fp); 但是读出的字符不能保存。
在文件内部有一个位置指针。用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc 函数后,该位置指针将向后移动一个字节。 因此可连续多次使用fgetc函数,读取多个字符。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。
【例13-1】读入文件c1.doc,在屏幕上输出。#includestdio.hmain(){ FILE *fp; char ch; if((fp=fopen("d:\\jrzh\\example\\c1.txt","rt"))==NULL){ printf("\nCannot open file strike any key exit!"); getch(); exit(1); } ch=fgetc(fp); while(ch!=EOF){ putchar(ch); ch=fgetc(fp); } fclose(fp);}
本例程序的功能是从文件中逐个读取字符,在屏幕上显示。程序定义了文件指针fp,以读文本文件方式打开文件“d:\\jrzh\\example\\ex1_1.c”,并使fp指向该文件。如打开文件出错,给出提示并退出程序。程序第10行先读出一个字符,然后进入循环,只要读出的字符不是文件结束标志(每个文件末有一结束标志EOF)就把该字符显示在屏幕上,再读入下一字符。每读一次,文件内部的位置指针向后移动一个字符,文件结束时,该指针指向EOF。执行本程序将显示整个文件。
2) 写字符函数fputc
fputc函数的功能是把一个字符写入指定的文件中。函数调用的形式为:
fputc( 字符量, 文件指针 );
其中,待写入的字符量可以是字符常量或变量,例如:
fputc('a',fp);
其意义是把字符a写入fp所指向的文件中。
对于fputc函数的使用也要说明几点:
被写入的文件可以用写、读写、追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符从文件首开始。如需保留原有文件内容,希望写入的字符以文件末开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。
每写入一个字符,文件内部位置指针向后移动一个字节。
fputc函数有一个返回值,如写入成功则返回写入的字符,否则返回一个EOF。可用此来判断写入是否成功。
C语言或C++如何读写汉字,比如一个文本中有很多汉字,如何读取后全部显示出来
#includestdio.h
#includestdlib.h
int main()
{
FILE *fp;
if((fp=fopen("D:\\123.txt","r"))==NULL)
{
printf("Error!\n");
exit(0);
}
//假设d盘的123.txt中有四个汉字:好好学习,下面的部分输出第一个汉字
char ch[3];
int i;
for(i=0;i2;i++)
ch[i]=getc(fp);
ch[i]='\0';
puts(ch);
//假设d盘的123.txt中有四个汉字:好好学习,下面的部分输出全部汉字但是这样操作有缺陷:那就是如果有三个汉字一个字母的话,输出将发生错误。你可以将123.txt中的内容改为:学习过C ,你试一试就知道了
rewind(fp);
char ch2[9];
for(i=0;i8;i++)
ch2[i]=getc(fp);
ch2[i]='\0';
puts(ch2);
fclose(fp);
return 0;
}
原来的代码:
#includestdio.h
#includestdlib.h
int main()
{
FILE *out;
if((out=fopen("d:\\123.txt","r"))==NULL)
{
printf("Error!\n");
exit(0);
}
char ch;
ch=getc(out);
while(!feof(out))
{
putchar(ch);
ch=getc(out);
}
fclose(out);
return 0;
}
如果是汉字处理的话 其实很复杂的 虽然tattackor说的方法也可行 但是好像并不严格 其实之前我也这样 想过 具体参考我空间里的文章:
这是去年写的 但是更好的方法这方面一直没有进展
同时 如果txt中是汉字和字符混排的话,如果还定义一个char ch[3]来读取 未免有点太……
C语言中还有专门的数据类型 来处理汉字 我研究一下 如果有所进展告诉你
附:存放一个汉字的话用char ch[2*1+1]
存放3个汉字的话用char ch[2*3+1]
因为一般上一个汉字占用两个字节
C语言中int 和char怎么读?
Char如果表示编程里的数据类型 应该是Character的缩写 现在普遍读的都是
/tʃɑː/ (恰)
但是 Varchar 却不是哇恰,读做
/'vɑːkə/(屋阿科儿)(屋发音很短)
Int是Integer是缩写 读作
/ɪnt/ (印提)
C语言中如何读取文件中的汉字并将其存入数组中?
建立一个足够大的字符型数组;
以文本方式读打开原文件;
按字符方式读取文件,每读一个字符判断一下是否为汉字编码(0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。
设原文件在当前目录下,名为123.txt,举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
int main(void){
char s[1000],ch;
FILE *fp;
int i=0;
if((fp=fopen("123.txt","r"))==NULL){
printf("Open the file failure...\n");
exit(0);
}
while((ch=fgetc(fp))!=EOF)
if(ch0)
s[i++]=ch;
fclose(fp);
s[i]='\0';
printf("%s\n",s);//打出来看看
return 0;
}
注:原文件内容是“fjkslauti我rophk134是2315学jkal 习C语言jks新da;jus手jfkdsla”
输出是“我是学习语言新手”