【发布时间】:2011-12-22 13:14:36
【问题描述】:
我正在尝试编写一个函数来更改一些文件夹名称,但我在实际声明中遇到了困难。
这是我的代码:
void ChangeVersion(char* NewVer)
{
ifstream show_current_version;
show_current_version.open(*removed*);
char show_current_version_var[1024];
if (show_current_version.is_open())
{
while (!show_current_version.eof())
{
show_current_version >> show_current_version_var;
}
}
show_current_version.close();
// show_current_version_var is old version
char OldVersion[1024] = show_current_version_var;
// start rename
cout << "Changing versions...";
rename("*removed*", OldVersion);
rename(NewVer, "*removed*");
cout << "done!" << endl;
}
如您所知,我是 C++ 新手...
我在各种 c++ 教程网站上阅读过,如果您希望函数不返回任何内容,则将其声明为 void。但是,当我这样做时,我的编译器说无效的初始化程序。我正在使用 dev-cpp。
我想这是因为我的函数是输出文本,但是在网站上,void 函数有一些 cout 语句......
我尝试使用 char* 对其进行初始化,就像我的其他函数一样,但我得到了同样的错误。与 int 和 char 相同。
感谢您的阅读。
【问题讨论】:
-
这是在头文件中,因此没有库。
-
为什么是循环?我猜版本号存储在文件中,但它是文件中唯一存储的东西吗?但更重要的是,你必须向我们展示你是如何调用这个函数的。
-
这是一本不错的 C++ 书籍,您可以免费下载:Thinking in C++
-
“这是在头文件中,因此没有库”。您的实现代码不应在头文件中。这不是头文件的用途。头文件用于说“这是你可以做的”。实现文件是为了说“......这就是它的工作原理”。
-
错误消息包括告诉您在何处检测到错误的行号。您应该检查它声称有问题的地方,而不是猜测。
标签: c++ function compiler-construction types declaration