gpt4 book ai didi

string - 字符串文字中的转义序列 (Fortran)

转载 作者:行者123 更新时间:2023-12-04 02:30:30 31 4
gpt4 key购买 nike

有一个C++的例子

string str;
str = "First\n"
"Second\n"
"Third;\n";
cout << str << endl;

输出将是

First
Second
Third;

我想尝试在 Fortran 中重复它,但没有像在 C++ 中那样在 char 字符串中找到任何关于转义序列的信息。

最佳答案

一种方法是使用 achar linefeed 的 ASCII 代码,即 10。这种方法的优点是,如果您知道 ASCII 码,则可以根据需要使用其他字符。

character(len=32):: str = "First" // achar(10) // "Second"

给你想要的结果。 (注意://是字符连接操作符)

另一种方法是将 achar(10) 替换为 new_line('a'),这仅适用于插入换行符。

有趣的是,如果您使用的是 gfortran,您可以在编译时使用选项 -fbackslash 以使用 C 风格的反斜杠,如文档中所述:

-fbackslash

Change the interpretation of backslashes in string literals from a single backslash character to “C-style” escape characters. The following combinations are expanded \a, \b, \f, \n, \r, \t, \v, \, and \0 to the ASCII characters alert, backspace, form feed, newline, carriage return, horizontal tab, vertical tab, backslash, and NUL, respectively. Additionally, \xnn, \unnnn and \Unnnnnnnn (where each n is a hexadecimal digit) are translated into the Unicode characters corresponding to the specified code points. All other combinations of a character preceded by \ are unexpanded.

因此,字符串将简化为

str = "First\nSecond"

关于string - 字符串文字中的转义序列 (Fortran),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64494297/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com