【发布时间】:2013-05-30 13:29:52
【问题描述】:
我正在编写一个程序,它使用 getchar() 将输入作为字符序列,并使用 fopen() 和 putc() 函数创建 pro.cpp 源代码文件。
当我编译这个程序创建的源代码文件时,它会产生错误。 如果我从新行开始 int main{},则可以解决此错误。所以我需要在#include 和 int main{ }
之间输入换行符我不知道该怎么做。
#include<stdio.h>
int main()
{
FILE *fp;
char pgm[100];
char *p_pgm;
p_pgm=pgm;
printf("Enter the program as a input");
while((*p_pgm=getchar())!=10)
p_pgm++;
*p_pgm ='\0';
fp =fopen("e:\\pro.cpp","w");
while(*p_pgm!='\0')
putc(*p_pgm++,fp);
fclose(fp);
}
【问题讨论】:
-
有什么原因不能使用 putc('\n',fp);
-
当然,因为
*p_pgm ='\0',底部的while循环永远无法执行,因为*p_pgm是\0? -
但是您作为输入的程序不包含换行符吗?因为否则你只会获得第一行,就像在while循环中你找到'\n'时停止,这相当于ascii表示中的10,正如我在回答中所说的那样。
-
把
10改成'\n';它们(可能)是相同的值,但'\n'更清晰。