我有这段代码将一堆A输出到一个文件(500行500 A')
int main() {
FILE * output = fopen("somefile.txt", "w");
//initialize string
char s[500];
for(int i = 0;i < 500;i++) {
//set each letter to 'A'
s[i] = 'A';
}
for(int i = 0;i < 500;i++) {
//output the string 500 times
fprintf(output, "%s\n", s);
}
}
然而,有一个反向的&#39; ^&#39;在每一行的末尾。 (screenshot here)
如何摆脱它?
答案 0 :(得分:0)
这里更大的问题是你没有使用标准库,这会使你的问题变得无足轻重。在这里,您应该使用std::string
,然后您不必担心内存或空终止符或其他任何内容:
#include <string>
int main()
{
std::string s(500, 'A');
for (int i = 0; i < 500; ++i)
std::cout << s << std::endl;
}
但是,您之所以遇到这种情况的原因是因为printf
requires a null-terminated string,所以您需要改为写这个:
char s[501] = {}; // default construct s so they're all null
for(int i = 0;i < 500;i++) {
//set each letter to 'A'
s[i] = 'A';
}