我是 QT 的新手,所以如果我在这里公然做错了什么,请原谅我,但我已经查看了这里有关此事的所有问题,但似乎找不到有效的方法。我试图让用户通过输入名称来创建一个文件夹,然后它会使用该名称“创建”一个文件夹。我说“创建”是因为它并不完全是创建一个,它在您输入名称之前首先创建一个名为“project”的文件夹,当您输入名称时它会重命名它。但是,当我尝试使用输入的名称重命名文件夹时,它给了我
错误:C2664:“int rename(const char *,const char *)”:无法将参数1从“QString”转换为“const char *”
这是我的代码:
void MainWindow::on_actionNew_Project_triggered(const char *parameter)
{
//Create project folder
QString projectPath = "D:/Project";
QDir dir(projectPath);
if (!dir.exists()) {
dir.mkpath(projectPath);
}
//Get project name from user
bool result;
QString name = QInputDialog::getText(0, "New Project",
"Enter in project name", QLineEdit::Normal,
"", &result);
if(result && !name.isEmpty()) {
//Rename project folder to user created name
QDir dir(projectPath);
if (dir.exists()) {
rename(projectPath, name); //Gives me error HERE
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你们能帮忙,我将不胜感激,我已经在这个问题上坚持了几个小时了。
如何获取const char*数组索引的长度?
矢量:
std::vector<const char*> _infoBarText;
Run Code Online (Sandbox Code Playgroud)
const char*[]:
const char* text[4] = {"Current T:", "Target T:", "Time elapsed:", "Time remaining:"};
Run Code Online (Sandbox Code Playgroud)
将char数组分配给向量:
_infoBarText.assign(text, text+4);
Run Code Online (Sandbox Code Playgroud)
如何"current T"从向量中获取单个字符串的长度?
当我将 aconst char*作为函数参数传递时(像这样):
void print(const char* text)
{
std::cout << text << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
会自动删除吗?如果没有,它会发生什么,我应该如何删除它?
执行以下代码时,我得到了我期望的结果以及一些意外的输出:
#include <iostream>
using std::cout;
using std::endl;
int main()
{
const char ca[] = {'h', 'e', 'l', 'l', 'o'};
const char *cp = ca;
while (*cp)
{
cout << *cp << endl;
++cp;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
h
e
l
l
o
?
?
m
Run Code Online (Sandbox Code Playgroud)
最后剩下的字符是什么?const char数组中是否有未说明的内容?