昨天,我发布了一份新账户项目的大合同,该项目必须在C++中实现。我的问题结束了,但我认为是因为它有很多错误。经过大量的工作和当地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;
}发布于 2012-12-14 16:26:43
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.123https://stackoverflow.com/questions/13874964
复制相似问题