gpt4 book ai didi

文件中的 C++ 新行不起作用

转载 作者:行者123 更新时间:2023-11-30 02:01:41 26 4
gpt4 key购买 nike

昨天我发布了一个关于必须使用 C++ 的新帐户程序的大契约(Contract)。我的问题结束了,但我认为因为它有很多错误。通过大量工作和本地 C++ 专家的咨询,我修复了我们拥有的原始代码:

#include <accounting.h>
#include <stdio.h>

char *main()
{
accounting bank = 100debits;
bank = bank + 200debits;
return printf("bal: %accounting\n", bank);
}

我们定义的一些类的新版本运行良好,但唯一的问题是 C++ 无法向文件写入新行。下面的代码按原样工作,但如果我放回注释行,我没有输出到文件。

#include <stdlib.h> 
#include <stdio.h>
#include <cstring>
#define accounting float
#define print_accounting(x) x "%0.2f"
#define debits * 1.0F
#define credits * -1.0F

int main()
{
accounting bank = 100 debits;
bank = bank + 200 debits;
char my_bal[((unsigned short)-1)];
sprintf(my_bal, print_accounting("bal:"), bank);
char write_file[((unsigned short)-1)];
write_file[NULL] = 0;
strcat(write_file, "@echo ");
strcat(write_file, my_bal);
// strcat(write_file, "\n"); -- Wont work --
strcat(write_file, " > c:\\SAP_replace\\bal.txt");
system(write_file);
return 0;
}

最佳答案

echo 会自动在文件末尾写入一个换行符。

如果你想要两个换行符,只需添加另一行类似于:

system ("echo. >>c:\SAP_replace\\bal.txt");

在当前 system() 调用之后。

或者您可以抛弃生成另一个进程来执行输出的整个陈旧想法,而是使用 iostreams 来完成这项工作。这就是您应该在 C++ 中执行此操作的方式,例如:

#include <iostream>
#include <fstream>
int main (void) {
float fval = 0.123f;
std::ofstream os ("bal.txt");
os << "bal: " << fval << '\n';
os.close();
return 0;
}

哪些输出:

bal: 0.123

关于文件中的 C++ 新行不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13874964/

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