我正在连续地将字符串值写入文本文件
std::string line =('8101001033900039','00','22','','','','','3','','0'),
这个字符串我们正在写一个文本文件,如下面的
outfile.open((char*)fileName.c_str(), ios::app);
if(outfile.is_open())
{
// write inputted data into the file.
DBGF_TRACE("3.write line : %s", line);
outfile<< line << std::endl;
DBGF_TRACE("write line : %s", line);
}
现在我得到的错误是,有时它的写入失败了。有人可以帮忙吗
答案 0 :(得分:2)
首先是什么:
std::string line =('8101001033900039','00','22','','','','','3','','0');
编译器应该给你这样的东西:
prog.cc:8:24: warning: character constant too long for its type
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~~~~~~~~~~~~~~~~~
prog.cc:8:43: warning: multi-character character constant [-Wmultichar]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~~~
prog.cc:8:48: warning: multi-character character constant [-Wmultichar]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~~~
prog.cc:8:53: error: empty character constant
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:56: error: empty character constant
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:59: error: empty character constant
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:62: error: empty character constant
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:69: error: empty character constant
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc: In function 'int main()':
prog.cc:8:43: warning: left operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~~~
prog.cc:8:48: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~~~
prog.cc:8:53: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:56: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:59: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:62: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:65: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~~
prog.cc:8:69: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~
prog.cc:8:72: warning: right operand of comma operator has no effect [-Wunused-value]
std::string line =('8101001033900039','00','22','','','','','3','','0');
^~~
prog.cc:8:71: error: conversion from 'char' to non-scalar type 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} requested
std::string line =('8101001033900039','00','22','','','','','3','','0');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
因此数据本身并不正常。
现在,让我们用双引号替换单引号,因为你可能想要字符串,如下所示:
std::string line =("8101001033900039","00","22","","","","","3","","0");
然后只将最右边的操作数分配给line
,这意味着line
现在等于"0"
。在What does i = (i, ++i, 1) + 1; do?
编辑:
你需要这个:
#include <fstream>
#include <string>
#include <iostream>
int main(void) {
std::string fileName = "output.txt";
std::string line ="('8101001033900039','00','22','','','','','3','','0'),";
std::ofstream out(fileName.c_str());
out << line << std::endl;
out.close();
return 0;
}