【发布时间】:2017-01-31 14:13:23
【问题描述】:
我一直试图在不使用指针的情况下解决这个问题,只使用基础知识(我是学生),但我无法很好地解决这个问题。
void ReverseFile() {
FILE *originalM, *fin;
fopen_s(&originalM, "original.txt", "r");
fopen_s(&fin, "inverted.txt", "w");
char arr[100];
for (int i = 0; i < 100 && !feof(originalM); i++)
{
fscanf_s(originalM, "%c ", &arr[i]);
cout << arr[i] ;
}
cout << endl;
fclose(originalM);
for (int i = 0, k = 100; i < 100; i++, k--)
{
arr[k] = arr[i];
cout << arr[k];
}
fclose(fin);}
到目前为止,我有这个函数和一个包含字符(中间有空格)的文本文件(originalM.txt):
e e a a e e a a e e a a
在第一个循环中,我获取文件的每个字符并将其保存在数组中。问题出现在第二个循环中,我想在其中反转它们。我该如何解决这个问题?我试图创建一个新数组并存储字符,但这不起作用。我也试图用这个将它打印到新文件中:
fprintf(fin, "%c ", &arr[k]);
如果有任何帮助,我将不胜感激。
【问题讨论】:
-
你乐意使用 std::reverse 吗?
-
您已经标记了 C 和 C++ 。它们是不同的语言。
-
你写在同一个数组中。和@YuriyIvaskevych 这不能是C,因为C 没有
cout -
你听说过
std::vector吗? -
@KamiKaze - 我认为迫使学生使用
cstring图书馆而不是std::string的态度正好相反。他们不会只是“全神贯注于编程”,因为他们经常需要追逐你声称他们不受保护的非常复杂的细节。执行std::string str = "Hello World";比在定义char *str = "Hello World!";后想知道为什么程序段错误要直观得多