首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++文件中的新行不起作用

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

Stack Overflow用户
提问于 2012-12-14 16:22:16
回答 1查看 1.4K关注 0票数 1

昨天,我发布了一份新账户项目的大合同,该项目必须在C++中实现。我的问题结束了,但我认为是因为它有很多错误。经过大量的工作和当地C++专家的咨询,我已经修复了我们的原始代码:

代码语言:javascript
复制
#include <accounting.h>
#include <stdio.h>

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

我们定义的一些类的新版本工作得很好,但唯一的问题是C++不能向文件中写入新的行。下面的代码按原样工作,但如果我把注释行放回原处,就不会输出到文件中。

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-14 16:26:43

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

如果需要两个换行符,只需添加另一行,如下所示:

代码语言:javascript
复制
system ("echo. >>c:\SAP_replace\\bal.txt");

在当前的system()调用之后。

或者,您可以抛弃生成另一个进程来执行输出的整个陈旧想法,转而使用iostreams来完成这项工作。这就是你应该在C++中做的事情,类似于:

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

以下哪项输出:

代码语言:javascript
复制
bal: 0.123
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13874964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档