小小小菜鸟有个问题想请教各位大神

时间:2022-09-30 21:53:07
c++
为什么我第二次不能正确读入aaa.txt和ccc.txt中的内容啊?
#include<iostream>
#include<sstream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
int main(){
int b[7]={4,9,6,2,8,7,3};
    ifstream in("aaa.txt");
    ofstream of("bbb.txt");
for(string s;getline(in,s);){
for(int i=0;i<s.size();i++)
{
s[i]=s[i]+b[i%7];
if(s[i]>122)
s[i]=s[i]%90+32;
cout<<s[i];
of<<s[i];
    }
cout<<endl; 
ofstream of("ccc.txt");
for(i=0;i<s.size();i++)
{    s[i]=s[i]-b[i%7];
 if(s[i]<65&&s[i]>55)
 s[i]=s[i]+58;
     cout<<s[i];
of<<s[i];
}
cout<<endl;
ifstream in("aaa.txt");
 vector<int> s;
 for(int a;in>>a;);  s.push_back(a);
 {for(int i=0;i<s.size();i++)
 cout<<s[i]<<" ";}
 cout<<endl;

{ ifstream in("ccc.txt");
     vector<int> m;
 for(int c;in>>c;);
 m.push_back(c);
 for(int j=0;j<m.size();j++)
 { cout<<m[j]<<" ";
      cout<<endl;}
 
for(int t=0;t<s.size();t++)
{if(s[t]==m[t])
cout<<s[t]<<" ";}
cout<<endl;
}


}
}

13 个解决方案

#1


几个建议,不同用途的fstream,请起不同的名字。
你看你的程序,好几处in和of,都是不同的fstream。
另外fstream用完了记得close。

#2


小小小菜鸟有个问题想请教各位大神哎,我C++的文件操作还没学呢。

#3


引用 2 楼 gig886 的回复:
哎,我C++的文件操作还没学呢。

C++的文件操作没学就能写出这份代码,难得!
读文件主要的还是路径,路径对了,文件指针有效的话,其他的就好办了。
其次,文件读写操作完成以后,一定要记得及时释放文件指针。不然再次对该文件读写,很可能会不成功。
最后,赞同1楼的建议。

#4


引用 3 楼 tonforce 的回复:
引用 2 楼 gig886 的回复:哎,我C++的文件操作还没学呢。
C++的文件操作没学就能写出这份代码,难得!
读文件主要的还是路径,路径对了,文件指针有效的话,其他的就好办了。
其次,文件读写操作完成以后,一定要记得及时释放文件指针。不然再次对该文件读写,很可能会不成功。
最后,赞同1楼的建议。
额。。。请问用c++怎么释放啊?我只知道c的fclose,不知道c++的fclose额。。。

#5


引用 1 楼 ForestDB 的回复:
几个建议,不同用途的fstream,请起不同的名字。
你看你的程序,好几处in和of,都是不同的fstream。
另外fstream用完了记得close。
额。。。我还没学该名字什么的,而且只知道用c语言fclose,不会用c++  fclose,可不可以请你教我呢?

#6


引用 2 楼 gig886 的回复:
哎,我C++的文件操作还没学呢。
你也是学生么?

#7


引用 6 楼 u010109772 的回复:
引用 2 楼 gig886 的回复:哎,我C++的文件操作还没学呢。你也是学生么?

会写代码了就要学会调试程序,调试才是最重要的。

#8


先学习如何搜索查阅标准库吧。

#9


引用 8 楼 ForestDB 的回复:
先学习如何搜索查阅标准库吧。
kkk。。。好吧,可是我这个程序很急啊。。。大神。。。

#10


#include<iostream>
#include<sstream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
int main(){
int b[7]={4,9,6,2,8,7,3};
    ifstream in("aaa.txt");
    ofstream of("bbb.txt");
for(string s;getline(in,s);){
for(int i=0;i<s.size();i++)
{
s[i]=s[i]+b[i%7];
if(s[i]>122)
s[i]=s[i]%90+32;
cout<<s[i];
of<<s[i];
    }
cout<<endl; 
ofstream of("ccc.txt");
for(i=0;i<s.size();i++)
{    s[i]=s[i]-b[i%7];
 if(s[i]<65&&s[i]>55)
 s[i]=s[i]+58;
     cout<<s[i];
of<<s[i];
}
cout<<endl;
ifstream in("aaa.txt");
 vector<int> s;
 for(int a;in>>a;);  s.push_back(a);
 {for(int i=0;i<s.size();i++)
 cout<<s[i]<<" ";}
 cout<<endl;

{ ifstream in("ccc.txt");
     vector<int> m;
 for(int c;in>>c;);
 m.push_back(c);
 for(int j=0;j<m.size();j++)
 { cout<<m[j]<<" ";
      cout<<endl;}
 
for(int t=0;t<s.size();t++)
{if(s[t]==m[t])
cout<<s[t]<<" ";}
cout<<endl;
}


}
}

#11


引用 7 楼 wanglu343280746 的回复:
引用 6 楼 u010109772 的回复:引用 2 楼 gig886 的回复:哎,我C++的文件操作还没学呢。你也是学生么?
会写代码了就要学会调试程序,调试才是最重要的。
调试?我们没学。。。 小小小菜鸟有个问题想请教各位大神

#12


引用 10 楼 seuduck 的回复:
C/C++ code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include<iostream>#include<sstream>#include<fstream>#include<string>#include<ve……
出来的结果是press any key to continue 额。。。

#13


引用 6 楼 u010109772 的回复:
引用 2 楼 gig886 的回复:
哎,我C++的文件操作还没学呢。你也是学生么?

是啊,还是学生党。

#1


几个建议,不同用途的fstream,请起不同的名字。
你看你的程序,好几处in和of,都是不同的fstream。
另外fstream用完了记得close。

#2


小小小菜鸟有个问题想请教各位大神哎,我C++的文件操作还没学呢。

#3


引用 2 楼 gig886 的回复:
哎,我C++的文件操作还没学呢。

C++的文件操作没学就能写出这份代码,难得!
读文件主要的还是路径,路径对了,文件指针有效的话,其他的就好办了。
其次,文件读写操作完成以后,一定要记得及时释放文件指针。不然再次对该文件读写,很可能会不成功。
最后,赞同1楼的建议。

#4


引用 3 楼 tonforce 的回复:
引用 2 楼 gig886 的回复:哎,我C++的文件操作还没学呢。
C++的文件操作没学就能写出这份代码,难得!
读文件主要的还是路径,路径对了,文件指针有效的话,其他的就好办了。
其次,文件读写操作完成以后,一定要记得及时释放文件指针。不然再次对该文件读写,很可能会不成功。
最后,赞同1楼的建议。
额。。。请问用c++怎么释放啊?我只知道c的fclose,不知道c++的fclose额。。。

#5


引用 1 楼 ForestDB 的回复:
几个建议,不同用途的fstream,请起不同的名字。
你看你的程序,好几处in和of,都是不同的fstream。
另外fstream用完了记得close。
额。。。我还没学该名字什么的,而且只知道用c语言fclose,不会用c++  fclose,可不可以请你教我呢?

#6


引用 2 楼 gig886 的回复:
哎,我C++的文件操作还没学呢。
你也是学生么?

#7


引用 6 楼 u010109772 的回复:
引用 2 楼 gig886 的回复:哎,我C++的文件操作还没学呢。你也是学生么?

会写代码了就要学会调试程序,调试才是最重要的。

#8


先学习如何搜索查阅标准库吧。

#9


引用 8 楼 ForestDB 的回复:
先学习如何搜索查阅标准库吧。
kkk。。。好吧,可是我这个程序很急啊。。。大神。。。

#10


#include<iostream>
#include<sstream>
#include<fstream>
#include<string>
#include<vector>
using namespace std;
int main(){
int b[7]={4,9,6,2,8,7,3};
    ifstream in("aaa.txt");
    ofstream of("bbb.txt");
for(string s;getline(in,s);){
for(int i=0;i<s.size();i++)
{
s[i]=s[i]+b[i%7];
if(s[i]>122)
s[i]=s[i]%90+32;
cout<<s[i];
of<<s[i];
    }
cout<<endl; 
ofstream of("ccc.txt");
for(i=0;i<s.size();i++)
{    s[i]=s[i]-b[i%7];
 if(s[i]<65&&s[i]>55)
 s[i]=s[i]+58;
     cout<<s[i];
of<<s[i];
}
cout<<endl;
ifstream in("aaa.txt");
 vector<int> s;
 for(int a;in>>a;);  s.push_back(a);
 {for(int i=0;i<s.size();i++)
 cout<<s[i]<<" ";}
 cout<<endl;

{ ifstream in("ccc.txt");
     vector<int> m;
 for(int c;in>>c;);
 m.push_back(c);
 for(int j=0;j<m.size();j++)
 { cout<<m[j]<<" ";
      cout<<endl;}
 
for(int t=0;t<s.size();t++)
{if(s[t]==m[t])
cout<<s[t]<<" ";}
cout<<endl;
}


}
}

#11


引用 7 楼 wanglu343280746 的回复:
引用 6 楼 u010109772 的回复:引用 2 楼 gig886 的回复:哎,我C++的文件操作还没学呢。你也是学生么?
会写代码了就要学会调试程序,调试才是最重要的。
调试?我们没学。。。 小小小菜鸟有个问题想请教各位大神

#12


引用 10 楼 seuduck 的回复:
C/C++ code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include<iostream>#include<sstream>#include<fstream>#include<string>#include<ve……
出来的结果是press any key to continue 额。。。

#13


引用 6 楼 u010109772 的回复:
引用 2 楼 gig886 的回复:
哎,我C++的文件操作还没学呢。你也是学生么?

是啊,还是学生党。