c++ - 为什么这只是一个空白的输出文件

标签 c++ fstream

我有这段代码试图将从管道 (fd_3) 接收到的行写入输出文件。作者打印收到的行;然后这些行被正确地打印出来,但输出文件每次都是空白的。有什么想法吗?

close(fd_3[WRITE_END]); //wont be writing to Munch2

ofstream outFile;
outFile.open("output.txt");
if(!outFile) {
    printf("File output.txt could not be opened");  
}

while(read(fd_3[READ_END], (void*)line.c_str(), BUFFER_SIZE)) {
    printf("writer receives: %s\n", line.c_str());
    outFile << line;
}

outFile.close();

close(fd_3[READ_END]); //done reading

最佳答案

可能是因为太可怕了

while(read(fd_3[READ_END], (void*)line.c_str(), BUFFER_SIZE)) {

修改 c_str() 是不允许的,并且有非常高几乎完全确定的可能性,这样做不仅会破坏内存,而且不会反射(reflect)在字符串内容中。

关于c++ - 为什么这只是一个空白的输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12669584/

相关文章:

c++ - 除非从方法本身内部调用方法不会更改值

.net - GetIpAddrTable 的任何替代方案?

c++ - srand 根本不是随机的 - 替代品?

c++ - 总结然后平均每 10 行从一个 txt 文件

c++ - 创建三个数组来填充 C 风格的字符串

c++ - 在 C++ 中读取文件时没有得到正确的输出

c++ - 从/向二进制文件读取/写入十六进制字节

c++ - 将 PCRE 正则表达式中的任意数量的单词匹配到字符串中

c++ - 指向 std::map 中的值的指针

c++ - 使用 fstream 在 C++ 中读取和写入二进制文件