c++如何打开已经创建好的TXT文件,附代码

原代码是保存为固定名称的TXT我改了下可以自己命名了,但是如何打开那个重命名的TXT文件,下半段代码不会改了~~~求指教
//文件写入函数
void save(struct txlproject *head)
{
FILE *fp;
struct txlproject *p1;
char file_name[256] = "";
//char txl[30];
if(head==NULL)
{
printf("通讯录为空,无法存储!\n");
return;
}
printf("请输入保存后的文件名:");
gets(file_name);//获取要保存的文件名
//gets(txl);
fp=fopen(file_name, "wt+");//创建文件
//fp=fopen("(txl).txt","w");
if(fp==NULL)
{
printf("cannot open file\n");
return;
}
p1=head;
fprintf(fp,"姓名 手机 年龄 通讯地址\n");
for(;p1!=NULL;)
{
fprintf(fp,"%s %s %s %s\n",p1->name,p1->handset,p1->age,p1->address);
p1=p1->next;
}
printf("保存完毕!\n");
fclose(fp);
}

//文件读出函数
struct txlproject *load(struct txlproject *head)
{
FILE *fp;
char file_name[256] = "";
//char txl[30];
struct txlproject *p1,*p2;
printf("请输入要输出的文件名:");
gets(file_name);
//gets(txl);
fp=fopen("file_name","r");
//fp=fopen("(txl).txt","r");
if(fp==NULL)
{
printf("此通讯录名不存在,无法输出!\n");
return(head);
}
else
{
head=shifang(head);
}
p1=(struct txlproject *)malloc(LEN);
fscanf(fp,"%s%s%s%s",&p1->name,&p1->handset,&p1->age,&p1->address);
if(feof(fp)!=0)
{
printf("文件为空,无法打开!\n");
return(head);
}
else
{
rewind(fp);
p2=p1;
head=p1;
n=0;
while(feof(fp)==0)
{
fscanf(fp,"%s%s%s%s",&p1->name,&p1->handset,&p1->age,&p1->address);
if(feof(fp)!=0)
break;
p2->next=p1;
p2=p1;
p1=(struct txlproject *)malloc(LEN);
n=n+1;
}
p2->next=NULL;
p1=head;
head=head->next;
n=n-1;
free(p1);
print(head);
printf("打开完毕!\n");
return(head);
}
fclose(fp);
}

你的问题是要用一个全局变量来储存TXT的文件名,save函数的时候file_name赋值给全局梁,open函数的时候调用这个全局量。追问

下面读取TXT文件的部分改怎么改~~~

追答

open里面不要再输入文件名了,使用全局量的file_name作为文件名,这样就打开了上一次保存的文件,再次调用save的话可以重新命名文件名

温馨提示:内容为网友见解,仅供参考
无其他回答

...用循环打开一系列已经存在的以数字为名的txt文件,并且判断其是否为空...
1.C语言读取TXT文件的行数并把把TXT文件的内容存到数组中,需要根据每行的内容(字符,数字,字符串)选取fgets、fscanf或者fgets。这里假设每行是一个字符串,每行不超过127个字符(用数组存字符串,最后一位存'\\0'),选取fgets进行读取。2.示例代码如下:include <stdio.h>#include <stdlib.h>in...

用C++编一个把一个c:\\c++.txt的文本文件打开、并显示出来。
using namespace std;main(){ char fname[256],sentence[256];cout<<"enter a filename:"<<endl;\/\/用户输入文件名 cin>>fname;ifstream fin(fname); \/\/打开文件 if(fin.good())while(!fin.eof()) \/\/打开无误则读出 { fin.getline(sentence,256);cout<<sentence<<endl; \/\/显示 } el...

C++中如何打开文本文档这样就不用一个一个输了
1.可以使用c语言中的fopen 比如 FILE *fp=NULL;fp=fopen("test.txt","r"); \/\/第一个参数为你想打开的文本文档的完整路径,第二个是读写操作标 识,只要成功打开文件,你就可以通过操作fp来读取内容或者向文件中写入内容 2.可以用c++的文件流的方式打开 输入文件流类:ifstream 输出文件流...

用C++打开当前文件夹当中的TXT文件
如果是在代码中打开文件,就用fopen("X.txt","r");如果是窗口打开文件,就用:char szAppPath[MAX_PATH];GetModuleFileName(NULL, szAppPath, MAX_PATH);(strrchr(szAppPath, '\\\\'))[1] = 0;strcat(szAppPath, "X.txt");system("szAppPath");...

C++,怎么打开TXT
回答:#include <iostream> #include <sstream> #include <string> #include <fstream> #include <iterator> using namespace std; int main() { ifstream input; input.open("1.txt",ios_base::in); if (input.bad()) { cout<<"Open 1.txt Failed!"<<endl; return 0; } copy(i...

C++设计一个程序,建立一个txt,并打开该文件
这是一个示例,你可以根据需要改改 include <iostream>#include <fstream>#include <vector>using namespace std;struct User{ int num; char name[20];};vector<User> read(){ vector<User> ss; fstream file("users.txt", ios::binary | ios::in); while(true) { ...

c++ 如何打开文件
首先要了解二进制文件的读写方法 C++文件流:fstream\/\/ 文件流 ifstream  \/\/ 输入文件流 ofstream  \/\/ 输出文件流 \/\/创建一个文本文件并写入信息 \/\/同向屏幕上输出信息一样将信息输出至文件 include include void main(){ ofstream f1("d:\\\\me.txt"); \/\/打开文件用于写,若文件不存在就创建...

怎么在C++中打开.txt和.dat格式的文件??
可以直接使用头文件 fstream,比如: #include <fstream> include <iostream> using namespace std;ifstream in;ofstream out;in.open("a.txt");out.open("a.txt");in.open("b.dat");out.open("b.dat");ifstream 对象打开并从文件中输出信息到别的空间,ofstream从别的地方读入信息到文件。

用C++怎么读这种txt格式的文件呀?
用输出流

C++打开文件操作
C++中使用fopen函数打开文件时,需要传递两个参数。第一个参数是文件指针fp,第二个参数则是用于指定打开方式的字符串。在fp=fopen("stock.txt","r")这一行代码中,"stock.txt"是文件路径,"r"则表示以只读模式打开文件。如果函数不带两个参数,代码将无法执行,因为fopen函数需要正确接收两个必要的...

相似回答