数字常量之前的预期';'
expected ';' before numeric constant
我在C++有以下代码,试图将xml文件写入文件,但它一直给我这个问题"预期的';"在数字常量之前
int main () {
ofstream myfile;
myfile.open ("example.xml", ios::out| ios::app| ios::binary);
if (myfile.is_open())
{
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
myfile << "<?xml-stylesheet type="text/xsl" href="wufi1d.xslt"?> n";
myfile << "<WUFI1D> n";
谁能帮忙?
您需要转义字符串内的引号,如下所示:
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
myfile << "<?xml-stylesheet type="text/xsl" href="wufi1d.xslt"?> n";
myfile << "<WUFI1D> n";
编译器在看到第一个"
时认为字符串已完成 - 因此您必须告诉它您的意思是通过将其转义"
将其包含在字符串中。
有关C++字符转义码的完整列表,请参阅此处。
转义你的dbl引号:即
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
应该是
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
举个例子
嵌入的引号需要转义。
这:
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
myfile << "<?xml-stylesheet type="text/xsl" href="wufi1d.xslt"?> n";
应如下所示:
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
myfile << "<?xml-stylesheet type="text/xsl" href="wufi1d.xslt"?> n";
不能在字符串中使用原始引号,因为它们表示字符串的末尾。转义它们:
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
myfile << "<?xml-stylesheet type="text/xsl" href="wufi1d.xslt"?> n";
myfile << "<WUFI1D> n";
您还可以在 C++11 中使用原始字符串文本,它将所有内容(包括空格)视为原始字符串的一部分:
myfile <<
R"(<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="wufi1d.xslt"?>
<WUFI1D>
)";
如果字符串中有括号,请在它周围放置一个分隔符:R"###(st(ri)ng)###"
后者可能更适合较长的文件,这样您就不必转义所有内容,但请记住,所有换行符、空格等都包含在字符串中,并且语法突出显示可能会变得混乱,具体取决于编辑器是否考虑原始文字,以及缩进(如果每行开头不包含多余的空格很重要), 因为您必须将文字保留到每行的最开头。
您有未转义的双引号,如代码突出显示器所示。如果要在输出的文本中显示双引号,请使用"
。
您不会转义输出字符串中的引号,例如
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
您必须使用不是字符串分隔符的反斜杠转义 (") 双引号:
myfile << "<?xml version="1.0" encoding="UTF-8"?> n";
相关文章:
- Vector中数字常量之前应为标识符
- 错误:数字常量 #define BOOT_PROTOCOL 0x00 之前的预期'>'
- 使用数字初始化常量引用
- 常量整数变量和数字的不同类型推导
- isdigit() 和 isalnum() 给出错误,因为输入是一个常量字符并且无法转换。其他可能查看输入是否为数字的方法?
- 数字常量之前的预期标识符
- 错误:数字常量之前的预期";"、','或 ')
- 构造函数错误:错误:数字常量之前的预期“”,“”或“..”
- 初始化具有递增数字的编译时常量大小的数组
- [错误]数字常量之前的预期标识符.-setlocale
- C++构造函数:数字常量之前的预期标识符
- 数字常量之前的预期';'
- 数字常量之前的预期非限定 id.- 阿杜伊诺
- (C++)错误:在数字常量之前应为非限定id--从文件读取时
- 在数字常量 Arduino 之前应为非限定 id
- 提升数字常量的优点
- 模板中的C++Cygwin数字常量生成错误
- 错误:数字常量之前的预期','或'...'
- 在伪随机生成器中使用常量种子从UT和GUI中获得不相同的数字
- c++编译错误预期的标识符在数字常量之前