【发布时间】:2014-12-09 14:58:55
【问题描述】:
我正在尝试从 csv 文件读取到另一个文件。没有任何错误,我只是不明白为什么它没有写入文件。任何帮助表示赞赏。我对 QT 很陌生。
QString arr[581][6];
while (!file.atEnd()) {
QByteArray line = file.readLine();
for (int i=0; i<581; i++){
for(int j=0; j<6; j++){
arr[i][j]=line;
}
}
}
QString Hfilename="c:\Data.txt";
QFile fileH( Hfilename );
if ( fileH.open(QIODevice::ReadWrite) )
{
QTextStream stream( &fileH );
for (int i=0; i<581; i++){
for(int j=0; j<6; j++){
stream<<arr[i][j]<<endl;
}
}
}
【问题讨论】:
-
将字符串文字中的反斜杠加倍:
"c:\\Data.txt"。此外,非管理员用户可能没有足够的权限在驱动器的根目录中创建文件;open调用可能失败。另外,您确定数组中至少有一个非空字符串吗?检查一下。 -
@IgorTandetnik 驱动器根目录的默认 Windows ACL 授予“所有人”完全控制权(Program Files 和 Windows 等重要子目录显然受到更多限制),因此任何人都应该能够在那里创建文件。任何给定的系统都可以进行不同的重新配置,但这是默认设置。
-
@AndrewMedico 当我运行记事本并尝试将文件保存到
C:\时,会弹出一条消息说C:\a.txt You don’t have permission to save in this location. Contact the administrator to obtain permission.我99.9% 确定我的系统上的权限是默认设置。跨度> -
我的错误。所有经过身份验证的用户都可以在根目录中创建新文件夹,但不能创建新文件。