【发布时间】:2012-12-12 07:23:24
【问题描述】:
我在读高中,必须使用 Turbo C++ 编译器,我知道这是一个非常古老的编译器,但请理解我的情况。
所以我在员工数据库上编写代码。代码sn-p:
userdb user;
fstream fil;
while(fil.read((char*)&user,sizeof(userdb)))
{
cout<<user.name;
cout<<user.pass;
cout<<user.age;
cout<<user.address;
}
fil.close();
现在的问题是,如果用户没有在数据库中输入他的地址,编译器就会显示垃圾。
如何检查一个值是否没有任何内容(垃圾)以便不在屏幕上打印它? (我试过 address[0]='\0' 和 strcmp("",address)==0 但这不起作用)
【问题讨论】:
-
不过,还是想办法跟上当前的潮流。
-
是的,我通常使用 Visual Studio,但它是一个学校项目,必须在 TC 上完成。所以别无选择。
-
读取的数据与文件中的数据完全相同。如果文件包含垃圾,则阅读时无能为力。相反,您应该首先确保不要将垃圾写入文件。此外,如果
userdb结构对字符串使用指针,它将永远无法工作,因为指针不能“按原样”存储。 -
谢谢约阿希姆。这解决了我的问题。我只是在创建文件时初始化所有其他字段。
标签: c++ string file-io null binaryfiles