我想以编程方式运行Linux命令并在文本浏览器中显示输出.这是我的代码:
void MainWindow::on_pushButton_clicked(){
QString qstr;
FILE *cl = popen("ifconfig eth0", "r");
char buf[1024];
while (fgets(buf, sizeof(buf), cl) != 0) {
qstr = QString::fromutf8(buf);
ui->textBrowser->setText(qstr);
}
pclose(ls);
}
Run Code Online (Sandbox Code Playgroud)
但我在文本浏览器中什么都没有.如果我改变qstr了ui->textBrowser->setText(qstr);一些任意"string",它工作正常.有帮助吗?!谢谢.
我想将any-type参数传递给我的函数func1().所以这是我的代码:
myclass.h:
public:
myclass();
template<typename T> void func1(T object);
Run Code Online (Sandbox Code Playgroud)
myclass.cpp:
template<typename T>
void myclass::func1(T object)
{
return;
}
Run Code Online (Sandbox Code Playgroud)
main.cpp:
int a=0;
myclass::func1<int>(a);
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误:
error: cannot call member function 'void myclass::func1(T) [with T = int]' without object
Run Code Online (Sandbox Code Playgroud)
我的错误在哪里?
我有一个数据库,我想使用游标收集字符串[]中一列的所有对象...所以这是我的代码:
c.moveToFirst();
int i = 0;
String[] addresses = new String[c.getCount()];
while(c.moveToNext()) {
addresses[i] = c.getString(c.getColumnIndex("address"));
i++;
}
c.close();
Run Code Online (Sandbox Code Playgroud)
但是当我使用这段代码时:
StringBuilder builder = new StringBuilder();
for(String in : addresses) {
builder.append("" + in + " ");
}
Toast.makeText(getApplicationContext(), builder, Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
用于显示我的字符串[]中的所有对象,我得到了:
234567null..但是正确的答案应该是这样的:1234567..!
所以我的错误在哪里?... 谢谢!!