std::ofstream failed

简介: 今天在输出数据到文件时,用到C++的std::ofstream,结果文件就是没有输出成功,示例程序如下所示: #include #include #include #include void Output(const std::string &theFileName){    std::ofstream os(theFileName.

今天在输出数据到文件时,用到C++的std::ofstream,结果文件就是没有输出成功,示例程序如下所示:


#include 
< fstream >
#include 
< sstream >
#include 
< iostream >
#include 
< cassert >

void  Output( const  std:: string   & theFileName)
{
    std::ofstream os(theFileName.c_str());

    assert(os.good());

    os 
<<   " Just for test "   <<  std::endl;

    os.close();
}

int  main( int  argc,  char *  argv[])
{
    std::stringstream ss;

    
//  remove the std::endl
    ss  <<   " test "   <<   1   <<   " .txt "   <<  std::endl;

    Output(ss.str());

    
return   0 ;
}

 

最后才发现是文件名有问题,修改程序,去掉生成文件名的一个std::endl即可:

 


#include 
< fstream >
#include 
< sstream >
#include 
< iostream >
#include 
< cassert >

void  Output( const  std:: string   & theFileName)
{
    std::ofstream os(theFileName.c_str());

    assert(os.good());

    os 
<<   " Just for test "   <<  std::endl;

    os.close();
}

int  main( int  argc,  char *  argv[])
{
    std::stringstream ss;

    
//  remove the std::endl
    ss  <<   " test "   <<   1   <<   " .txt " ;

    Output(ss.str());

    
return   0 ;
}


不经意间就会写出这种小错误的代码,而且找错很很费时。

目录
相关文章
std::atomic和std::mutex区别
模板类std::atomic是C++11提供的原子操作类型,头文件 #include<atomic>。在多线程调用下,利用std::atomic可实现数据结构的无锁设计。
176 2
|
8月前
|
编译器
ofstream错误:error: variable ‘std::ofstream ofs’ has initializer but incomplete type
ofstream错误:error: variable ‘std::ofstream ofs’ has initializer but incomplete type
134 1
|
4月前
|
安全 C++
C++: std::once_flag 和 std::call_once
`std::once_flag` 和 `std::call_once` 是 C++11 引入的同步原语,确保某个函数在多线程环境中仅执行一次。
|
8月前
|
存储 C语言 C++
std::atomic 相关接口(来自cppreference.com)
std::atomic 相关接口(来自cppreference.com)
78 0
|
8月前
|
并行计算 前端开发 安全
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索(一)
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索
232 0
|
8月前
|
存储 设计模式 前端开发
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索(二)
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索
155 0
|
8月前
|
存储 前端开发 安全
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索(三)
【C++并发编程】std::future、std::async、std::packaged_task与std::promise的深度探索
98 0
|
8月前
|
前端开发 C++
C++11实用技术(三)std::future、std::promise、std::packaged_task、async
C++11实用技术(三)std::future、std::promise、std::packaged_task、async
114 0
|
8月前
|
安全
C++11中的std::call_once
C++11中的std::call_once
std::jthread与std::thread区别
std::jthread是C++20新引入的线程类,与 std::thread 类似,或者说,jthread是对thread进一步的封装,功能更强大。
162 0