我目前有这个程序在控制台上打印一个文本文件,但每行下面都有一个额外的新行。 如果文字是
您好 世界
它会输出 喂
世界
代码就是这个
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
FILE* fp;
char input[80], ch = 'a';
char key[] = "exit\n";
int q;
fp = fopen("c:\\users\\kostas\\desktop\\original.txt", "r+");
while (!feof(fp)) {
fgets(input, 80, fp);
puts(input);
}
fclose(fp);
return 0;
}
答案 0 :(得分:40)
通常会使用fputs()而不是puts()来省略换行符。在你的代码中,
puts(input);
会变成:
fputs(input, stdout);
答案 1 :(得分:9)
puts()
按库规范添加换行符。您可以使用printf
,在那里您可以控制使用格式字符串打印的内容:
printf("%s", input);
答案 2 :(得分:0)
您还可以编写自定义的 puts 函数:
#include <stdio.h>
int my_puts(char const s[static 1]) {
for (size_t i = 0; s[i]; ++i)
if (putchar(s[i]) == EOF) return EOF;
return 0;
}
int main() {
my_puts("testing ");
my_puts("C puts() without ");
my_puts("newline");
return 0;
}
输出:
testing C puts() without newline