文件管理 · 2022年9月11日

c文件地址|C语言打开文件的路径问题

『壹』 C语言打开文件的路径问题

#include<stdio.h> int main(void) { int a, sum; FILE *ifp, *ofp; sum = 0; if((ifp = fopen("C:\Users\huangwj\Desktop\h.txt", "rt"))==NULL) { printf("not in"); return 0; } if((ofp = fopen("C:\Users\huangwj\Desktop\yes.txt", "wt"))==NULL) { printf(" out!!"); return 0; } while( fscanf(ifp, "%d", &a) != EOF) sum += a; fprintf(ofp, "The sum is %d. \n", sum); fclose(ifp); fclose(ofp); return 0;} 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您回生活愉快答!

『贰』 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语言中文件指针和文件在磁盘中的物理地址的关系是什么

没有关系,可以参考PE知识,内存中的文件偏移和物理文件的PE中的偏移是有关系的,但不一定相等,文件指针实际上直接跳到PE的Data区,该文件在硬盘中的物理地址在文件加载后,与内存没有关系

『肆』 c语言文件 存放的位置

存放到计算机分配的内存下,程序关闭就会清空,如果你用文本文件来存放,就不一样了,信息会保存在文件下

『伍』 c语言如何获得文件当前路径

C语言里在main函数来的第二个参数里面,自保存着当前程序运行的目录也就是argv[0]main( int argc, char *argv[]){ printf("%s ", argv[0] );}就是文件当前所在位置不过需要注意的一点是这个路径里面保存了当前文件的文件名如果你只是需要路径的话还需要自己操作一下main(int a,char *c[]){ char s[100]; int i; //把路径保存到字符串s里 strcpy(s,c[0]); for(i=strlen(s); i>0 ; i–) if( s[i] == '\\') { s[i]='\0'; break; } //找到最后一个 \ 并删除之后的内容 //最后输出的s,就是当前文件的路径了 puts(s);}

『陆』 c语言运行代码会显示文件地址吗

会显示。C语言的代码在运行前需要编译,编译就相当于把当前的代码文件进行保存,在编译完成后编译器会显示当前代码文件的地址,因此C语言运行代码会显示地址文件。C语言编译器普遍存在于各种不同的操作系统中,其设计也影响了Java、Python等编程语言。

『柒』 c语言保存文件到指定的路径和文件名

fp=fopen(filename,"wb");里的filename就表示了文件的路径及文件名,所以要把输入的文件名和文件路径拼接起来,计算出这个filename最好过滤一下别让路径和文件名中有非法字符,比如:\/+<>什么的。scanf也限制一下长度。scanf("%19s",filename);scanf("%19s",path);参考如下:#include <stdio.h>#include <stdlib.h>int main(void){ FILE *fp; char ch, filename[20], path[20],buffer[40]; printf("Enter the file name: "); scanf("%s",filename); printf("Enter the path: "); scanf("%s",path); sprintf(buffer, "%s\\%s", path,filename); printf("\nto end input ,press Ctrl+Z in newline,then ENTER:\n"); if((fp=fopen(buffer,"wt+"))==NULL) { printf("no such path, \nstrike any key exit!"); getch(); exit(1); } while ((ch=getchar())!=-1) ch=fputc(ch,fp); fclose(fp); printf("==================================\n\n"); printf("file path \"%s\" \nfile name \"%s\":\nand its content:\n",path,filename); fp=fopen(buffer,"rt"); while ((ch=fgetc(fp))!=-1) putchar(ch); fclose(fp); return 0;

『捌』 WINDOWS操作系统下的C语言头文件存放在哪个目录中

C语言中的头文件一般分为两类,一类是标准库头文件专,一类是用户自定义头文件属。

1、标准库头文件,不同的编译器都不相同。

Vc6.0一般在安装目录下的VC98INCLUDE目录,比如C:Program Files (x86)Microsoft Visual StudioVC98INCLUDE。

Vs一般在位于$VSPATHVCinclude路径下面。

gcc一般默认在 /usr/include目录下。

2、用户自定义头文件,存储位置有用户自定义。

(8)c文件地址扩展阅读:

在C语言中,头文件的作用如下:

1、加强类型检查,提高代码的类型安全性。

2、减少代码的重复书写,提高编写和修改程序的效率。 在程序开发的过程中,对某些数据类型或者接口进行修改是难免的,使用头文件,只需要修改头文件中的内容,就可以保证修改在所有源文件中生肖,从而避免了繁琐易错的重复修改。

3、提供保密和代码重用的手段。 用户只需要按照头文件的接口声明来调用库功能,而不必关心接口是怎么实现的,编译器会从库中提取相应的代码。

4、提供全局变量、全局函数的声明或提供公用数据类型的定义,从而实现分离变异或代码复用。

『玖』 C语言中写文件如何改变文件存放的位置

通过设置目标文件路径,可以改变文件的存放位置。

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。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语言 文件 如何在地址中包含地址中包含变量 比如 rf1=fopen("e:\\m.txt","r");我需要其中m是个从1到10

char *file[10]={"e:\\1.txt","e:\\2.txt","e:\\3.txt","e:\\4.txt","e:\\5.txt","e:\\6.txt","e:\\7.txt","e:\\8.txt","e:\\9.txt","e:\\10.txt"}for(int i=0;i<10;++i)rf1=fopen(a+i,"r");