scanf函数中的\问题

题目描述

题目描述
dhx又ac了,但是他的代码十分丑陋,他想请你帮他优化一下风格。 经过你的研究,你发现代码丑陋的原因在于代码中有数量不一的连续空格,你决定把代码中所有的极大的只包含空格的字符串都统一替换为x个连续空格,而对于空格以外的字符不做任何修改。(极大指无法再向左或者向右扩大一位而仍满足只包含空格的条件)。题目保证dhx代码总长度不超过120000。

输入
多行输入,请读到EOF。

第一行,一个整数,表示x(1≤x≤101≤x≤10)

第二行到文件的末尾都为dhx的代码。

输出
请输出修改后的dhx的代码

题目来源及自己的思路

相关代码

#include<stdio.h>
int main(){
    int x;
    scanf("%d\n",&x);
    char c;
    while((c=getchar())!=EOF){
        if(c!=' ') putchar(c);
        else{
            for(int i=0;i<x;i++)
            putchar(' ');
            do{
                c=getchar();
            }while(c==' ');
        if(c==EOF)break;
        else putchar(c);
        }
    }    
    return 0;
}

你期待的结果是什么?实际看到的错误信息又是什么?

scanf函数中的\n有什么用处呢?去掉就会PE。

阅读 1.4k
1 个回答

getchar把换行符读进来了,和scanf没啥关系

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进