导航:首页 > 文件目录 > c怎么读取文件路径总是不对

c怎么读取文件路径总是不对

发布时间:2023-12-27 14:26:11

『壹』 linux下用c语言打开文件路径问题

C语言程序也是启抄动一个进程, 所以袭他也也有环境变量, 默认是继承父进程的环境变量;如果是shell界面直接启动, 那么就是继承shell的环境变量; 如果是其他程序启动这个那么就是继承那个程序的环境变量;
首先没有搞清楚hello.html是可执行程序, 还是不可执行文件;现在我默认把他当作可执行文件
./表示当前目录;即执行当前目录下的hello.html; 如果没有则报错
而直接使用程序(hello.html)默认是先在PATH环境变量中查找; 如果PATH环境变量中没有则报错;

『贰』 c语言中如何得到当前文件所在位置

如果是通过open方式打开的,那么第一个参数就是文件路径信息:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *path, int oflag, /* mode_t mode */...);

如果是通过fopen方式打开的,那么第一个参数就是文件路径信息:
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode);

无论通过open还是fopen打开文件,都必须先知道文件路径信息,尽管可能是相对路径。
如果知道了filename的内容,我们就可以定位它的绝对路径,也就是你说的完全路径。

1. filename本身就是绝对路径,ok。
2. filename是相对路径,那么先通过getcwd获取进程的执行路径,然后再获取绝对路径即可。
#include <unistd.h>
extern char *getcwd(char *buf, size_t size);

但是,如果进程在打开文件后又执行了chdir、fchdir之类函数的话,估计就不能够再获取文件路径信息了。
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fildes);

『叁』 c语言读取txt文件时,文件路径怎么写,调试的时候都是找不到该文件

带空格的文件名,可以先放入char 数组,再使用。例如:
FILE *fin;
char namein[80]="D:\\kkk\\tmp\\test sp\\a.txt"; // 带空格
int x;
printf("%s\n",namein);
fin=fopen(namein,"r"); // 这里用变量名
if (!fin) printf("open err");
fscanf(fin,"%d",&x);
printf("%d",x);
fclose(fin);
}

c++ 也一样。

还有一种老方法,带空格的路径 用 8字符 省略法(写6个字符加1个波浪号加1):
namein[80]="C:\DOCUME~1\Administrator\abc.txt";

『肆』 C程序中文件路径问题

C 语言 最早 用于 unix.
unix 的路径 是用 正斜杠 /, linux 继承 unix 用 正斜杠,
网页 html 等 也是用 正斜杠.

反斜杠,计算机 软件 用于 “转义”.

可是垄断了微机操作系统的微软,路径 用的是 反斜杠 \. 所以在视窗系统的C程序中写文件路径时,不得不用 “双反斜杠”,第一个反斜杠叫 “转义”(就是下一个字符作特殊解释),“双反斜杠”解释为路径。

理论上 "xxx/xx"与"xxx\\xx" 没有什么区别,但不是所有编译器都懂。总之,微软系统你用 “双反斜杠”保险。

『伍』 txt文件的路径不对怎么办

使用C语言的文件操作函数可以读写txt文件,如果使用相对路径,文件必须放在程序相同的文件夹内。 1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。 2、例程: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include int a; char b,c[100]; int main(){ FILE * fp1 = fopen("input.txt", "r");//打开输入文件 FILE * fp2 = fopen("output.txt", "w");//打开输出文件 if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出 puts("不能打开文件!"); rturn 0; } 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);//关闭输出文件,相当于保存 return 0; }

『陆』 C语言文件的读取和写入不成功是什么原因

使用fopen的r方式可以实现读取,用w+方式可以实现写入。1.fopen的函数原型:FILE * fopen(const char * path,const char * mode); fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:r 以只读方式打开文件,该文件必须存在。r+ 以可读写方式打开文件,该文件必须存在。rb+ 读写打开一个二进制文件,允许读数据。rw+ 读写打开一个文本文件,允许读和写。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)wb 只写打开或新建一个二进制文件;只允许写数据。wb+ 读写打开或建立一个二进制文件,允许读和写。wt+ 读写打开或着建立一个文本文件;允许读写。at+ 读写打开一个文本文件,允许读或在文本末追加数据。ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

『柒』 C#中如何获取文件的相对路径

应用程序路抄:径string programpath=Application.StartupPath;
string relativepath=fullpath.SubString(programpath.Length);
//其中fullpath为全路径,不明白欢迎继续追问

『捌』 C语言在读取文件的时候显示文件不存在

1.书写格式错误
fp=fopen("C:\\vc98\\shuju.txt","r");
注意使用了转义字符“\",具体原因请参考课本
2.要看你的数据的格式,如果你所有的数据长度都是统一的,是可以用read实现读取固定长度的数据进数组的。
但是如果你的数据长度不统一,有长有短,那么只能通过读取数据,然后对读取的数据处理,得到需要的数据放到数组中。

阅读全文

与c怎么读取文件路径总是不对相关的资料

热点内容
压缩完了文件去哪里找 浏览:380
武装突袭3浩方联机版本 浏览:674
网络机顶盒移动网络 浏览:391
iphone手机百度云怎么保存到qq 浏览:148
数据库设计与实践读后感 浏览:112
js对象是什么 浏览:744
网页文件存pdf 浏览:567
文件夹正装 浏览:279
刚复制的文件找不到怎么办 浏览:724
试运行适用于哪些体系文件 浏览:987
ghost文件复制很慢 浏览:967
杰德原车导航升级 浏览:240
编程dest是什么意思 浏览:935
linux端口镜像 浏览:820
iphone5屏幕清尘 浏览:157
机顶盒密码怎么改 浏览:672
w7系统下载32位教程 浏览:618
pcb文件包括哪些内容 浏览:598
g00文件 浏览:607
用bat程序删除程序 浏览:516

友情链接