字符串逆向输出问题
如题 例如输入字符串“what a nice day” 则输出“day nice a what” 字符串多行从文件读取 但我输出的却是“day nice a hat” 调试发现第一个字符‘w’未赋值进数组 应该是read(char s[N][M],int* i)中while(in.get()!=EOF)那句先把第一个字符‘w’get了 然后再调用getline()就没有了第一个字符 可怎么解决这个问题呢?
程序代码:#include<iostream>
#include<algorithm>
#include<fstream>
using namespace std;
const int N=10;
const int M=100;
void reversestring(char* s){
int len=0;
while(s[len]!='\0'){
len++;
}
int k=len;
for(int i=len;i>=0;i--){
if(s[i]==' '){
for(int j=i+1;j<=k;j++){
cout<<s[j];
}
cout<<" ";
k=i;
}
if(i==0){
for(int j=0;j<k;j++){
cout<<s[j];
}
}
}
}
void read(char s[N][M],int* i){
ifstream in("string.txt");
if (!in)
{
cerr<<"error:can not open file:input.txt"<<endl;
return ;
}
*i=0;
while(in.get()!=EOF){
in.getline(s[*i],M);
(*i)++;
}
// for(int j=0;(s[*i][j]=in.get())!=EOF;j++){
// if(s[*i][j]=='\n'){
// (*i)++;
// j=0;
//// cout<<endl;
// }
//// else{
////// cout<<s[*i][j];
//// }
// }
}
int main(){
char s[N][M];
int num=0;
read(s,&num);
for(int i=0;i<num;i++){
reversestring(s[i]);
cout<<endl;
}
system("pause");
return 0;
}


