当前位置:首页 » 编程语言 » C语言读取有中文路径的文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言读取有中文路径的文件

发布时间: 2023-04-26 08:25:25

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语言中如何读取文件中的汉字并将其存入数组中

  1. 建立一个足够大的字符型数组;

  2. 以文本方式读打开原文件;

  3. 按字符方式读取文件,每读一个字符判断一下是否为汉字编码(<0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。

设原文件在当前目录下,名为123.txt,举例代码如下:

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
chars[1000],ch;
FILE*fp;
inti=0;
if((fp=fopen("123.txt","r"))==NULL){
printf("Openthefilefailure... ");
exit(0);
}
while((ch=fgetc(fp))!=EOF)
if(ch<0)
s[i++]=ch;
fclose(fp);
s[i]='';
printf("%s ",s);//打出来看看
return0;
}

注:原文件内容是“fjkslauti我rophk134是2315学jkal 习C语言jks新da;jus手jfkdsla”

输出是“我是学习语言新手”

③ C语言如何读取指定路径下的所有指定格式的文件

用C语言读取目录中的文件名的方法:
1、如果是在window环境下,可以用一下方法:
使用stdlib.h头文件声明的system()函数
_CRTIMP int __cdecl system (const char*);
system("dir c:\ /a:h /b > c:\dir.txt");
调用系统命令dir,把c:目录下文件列表写入文件dir.txt中

2、使用dirent.h头文件中声明的opendir(),readdir()函数;

intmain(intargc,char*argv[])
{
DIR*directory_pointer;
structdirent*entry;

if((directory_pointer=opendir("d:\XL"))==NULL)
printf("Erroropening ");
else
{
while((entry=readdir(directory_pointer))!=NULL)
{
printf("%s ",entry->d_name);
}
closedir(directory_pointer);

}
system("PAUSE");
return0;
}

3、如果没有dirent.h,可以使用io.h头文件中声明的_findfirst(),_findnext()函数;
示例代码:

intmain(intargc,char*argv[])
{
longfile;
struct_finddata_tfind;

_chdir("d:\");
if((file=_findfirst("*.*",&find))==-1L)
{
printf("空白! ");
exit(0);
}
printf("%s ",find.name);
while(_findnext(file,&find)==0)
{
printf("%s ",find.name);
}
_findclose(file);

system("PAUSE");
return0;
}

④ C语言文件操作,如何读写中文文本文件

你以什么方式打开文件的~?如果是二进制的话那乱码就是因为转换字符错误。
先看一下输入输出方式是否与新的文本文件匹配,可能与文本的编码方式有关。
另外看看你的数组设置,一般认为“一行”是第一个维度,“列”是第二个维度,“页”是第三个维度。对于“一列”数据来说,它把每行的那个数据认为是一个一维数组(这个一维数组是一个行数组,只有一个数据,其余为空),那个维度可以认为是空。

这里是一个模板,你试试~

FILE *fp1,*fp2;
char ch;
fp1=fopen("文件路径,记得用转义字符转义斜线","r");
fp2=fopen("文件路径,记得用转义字符转义斜线","a");
ch=fgetc(fp1);
while(ch!=EOF)
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
fclose(fp1);
fclose(fp2);

//没有加判断文件指针获取是否成功的验证,如果需要,你自己加上就行

⑤ C语言 怎么读取中文并显示

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain()
{
srand((unsigned)time(NULL));
inti,num;
chardraw[3][5]={"老虎","兔子","鸭子"};
for(i=0;i<5;i++)
{
num=rand()%3;
printf("%-3s ",draw[num]);

system("pause");
}
return0;

}

⑥ c 如何读文件

在C语言开发中,想要读入一个文件。C语言可以使用FILE文件操作进行高和肢读取。下面小白就来简单说说C语言如何读取一个txt文件。

C语言读取步骤一:首先需要以写入的方式打开一个空白的texr.txt文件。FILE*fpWrite=fopen("text.txt";"w");

C语言读取步骤二:打开以后,继续进行循环写入0到9的操作。代码。

C语言读取棚早步骤三:完成文件写入操作后,一定戚世要记得对打开文件进行关闭操作。

C语言读取步骤四:接下来对文件中写入数据的读取。首先需要创建一个用于保存读取数据的数组。

C语言读取步骤五:创建好数组以后,以读取的方式对text.txt文件进行打开操作。

C语言读取步骤六:最后,将读取到的数据循环保存的创建好的数组中,并且将其显示到控制台中。

⑦ c语言 怎么读文件中的汉字

字符读写函数fgetc和fputc
字符读写函数是以字符(字节)为单位的读写函数。 每次可从文件读出或向文件写入一个字符。

1) 读字符函数fgetc
fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:
字符变量=fgetc(文件指针);
例如:
ch=fgetc(fp);
其意义是从打开的文件fp中读取一个字符并送入ch中。

对于fgetc函数的使用有以下几点说明:
在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。
读取字符的结果也可以不向字符变量赋值。例如:fgetc(fp); 但是读出的字符不能保存。
在文件内部有一个位置指针。用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc 函数后,该位置指针将向后移动一个字节。 因此可连续多次使用fgetc函数,读取多个字符。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。

【例13-1】读入文件c1.doc,在屏幕上输出。#include<stdio.h>main(){ 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语言中怎样读出有中文的文本文件

中文是占2个字符,你的ch只有一个字符就换行了,所以打不出来,把打印时的换行去掉就行了
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\test.txt","r"))==NULL)
{
printf("file cannot open!");
exit(0);
}
ch=fgetc(fp);
while(!feof(fp))
{
printf("%c",ch); /*去掉换行*/
ch=fgetc(fp);
}
fclose(fp);
}

⑨ C语言中如何调用文本文件

1、首先使用VS新建空工程,直接点击确定。

⑩ c语言标准库fopen函数如何打开中文文件名的文件

文件主名和扩展名可以使用的字符是:
英文字母:A—z(大小写等价)

字:0—9


特殊符号:$#&@()-[]^~等。
各种控制字符和下列字符不能用在文件名中:<
>
/
\
:
"
*
?
//这些字符已做它用
文件名字母大小写的区分:
DOS下文件名不区分大小写。
在Windows系统下,显示区分大小写,读写操作时不区分。
在类Unix/Linux系统下,区分字母大小写。
文件名长度的限制:
DOS下文件名长度应为
8.3
即8位文件名3位扩展名。
在Windows系统下,可以多个扩展名,以最后一个为准,文件名长度255。
在类Unix/Linux系统下,文件名长度255,带路径的长度1024,也有系统4096。
文件名可以直接写进去函数里,也可以放在变量里:
FILE
*fp;
char
namein[]="abc.txt";
fp=fopen(namein,"r");

fp=fopen("abc.txt","r");
文件名若带路径,单反斜杠要写成双反斜杠,例如:
char
namein[]="C:\\path\\abc.txt";