#include <stdio.h> #include <string.h> #include <fstream> #include <iostream> using namespace std; #define maxn 100 void back(char str[]) { char word[maxn][maxn]; int len = strlen(str), r = 0, h = 0; for (int i = 0; i < len; i++) { if(str[i] != ' ') { word[r][h++] = str[i]; } else { word[r][h] = '\0'; r++; h = 0; } } for (int i = r; i >= 0; i--) { printf("%s", word[i]); if(i != 0) printf(" "); } printf("\n"); return; } int main() { char str[maxn]; ifstream fin; fin.open("/home/zzz/input.txt"); while(fin.getline(str,maxn)) { back(str); } fin.close(); // cin.getline(str, maxn); // back(str); return 0; }
3.1 不要再使用gets()这个函数啦!!!!ios
这个函数会把换行符读进来,并且在c++11中已经不建议使用,c++14彻底丢弃c++
可使用cin.getline(),并且这个函数还不会把回车符吃进去函数
3.2 c++文件读写spa
ifstream fin; fin.open("/home/zzz/input.txt"); while(fin.getline(str,maxn)) { back(str); } fin.close();
3.3 "边读边增加"3d
word[r][h++] = str[i];