Code Bye

关于文件的

 2.从键盘输入若干行字符(每行长度不等),输入后把它们存储到一个磁盘文件中。
再从该文件中读入这些数据,将其中小写字母转换成大写字母后在显示屏上输出 */
#include “stdio.h”
void main()
{
int i,flag;
char str[80],c;
FILE*fp;
fp=fopen(“text”,”w”);
flag=1;
while (flag==1)
{
printf (“input string:\n”);
gets(str);
fprintf(fp,”%s”,str);
printf(“continue?”);
c=getchar();
if ((c==”N”)||(c==”n”))
flag=0;
getchar();
}
fclose(fp);
fp=fopen(“text”,”r”);
while(fscanf(fp,”%s”,str)!=EOF)
{
for (i=0;str[i]!=”\0″;i++)
if ((str[i]>=”a”)&&(str[i]<=”z”))
str[i]-=32;
printf(“%s\n”,str);
}
fclose(fp);
}
这个在最后输出时为什么换行不起作用?还得加空格才能执行换行,应该要怎么改?
解决方案

5

试试 \r\n

5


好像没啥问题啊

10

#include <stdio.h>
int main() {
    int i, flag;
    char str[80], c;
    FILE*fp;
    fp = fopen("text", "w");
    flag = 1;
    while (flag == 1) {
        printf("input string:\n");
        gets(str);
        fprintf(fp, "%s\n", str);
        printf("continue?");
        c = getchar();
        if ((c == "N") || (c == "n"))
            flag = 0;
        getchar();
    }
    fclose(fp);
    fp = fopen("text", "r");
    while (fscanf(fp, "%s", str) != EOF) {
        for (i = 0; str[i] != "\0"; i++)
            if ((str[i] >= "a") && (str[i] <= "z"))
                str[i] -= 32;
        printf("%s\n", str);
    }
    fclose(fp);
    return 0;
}

20

用 \r\n 代替 \n

10

      gets(str);
fprintf(fp,”%s\n”,str);//后加\n即可
printf(“continue?”);

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于文件的