C++中有一个例子
string str;
str = "First\n"
"Second\n"
"Third;\n";
cout << str << endl;
输出将是
First
Second
Third;
我想尝试在 Fortran 中重复它,但没有找到任何关于 char 字符串中的转义序列的信息,就像 C++ 中一样。
一种方法是使用acharASCII 代码为linefeed, 那是10
。这种方法的优点是,如果您知道 ASCII 码,则可以根据需要使用其他字符。
character(len=32):: str = "First" // achar(10) // "Second"
给您想要的结果。 (笔记://
是字符连接运算符)
另一种是替换achar(10)
with new_line('a')
这仅适用于插入换行符。
有趣的是,如果您使用gfortran
,您可以使用该选项-fbackslash
编译时使用 C 样式反斜杠,如文档中所述:
-f反斜杠
将字符串文字中反斜杠的解释从单个反斜杠字符更改为“C 样式”转义字符。以下组合将 \a、\b、\f、\n、\r、\t、\v、\ 和 \0 扩展为 ASCII 字符警报、退格键、换页符、换行符、回车符、水平制表符、分别是垂直制表符、反斜杠和 NUL。此外,\xnn、\unnnn 和 \Unnnnnnnnn(其中每个 n 都是十六进制数字)被转换为与指定代码点对应的 Unicode 字符。前面带有 \ 的字符的所有其他组合都不会展开。
因此,该字符串将简化为
str = "First\nSecond"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)