海外散修-厉飞雨 2017-09-23 07:13 采纳率: 0%
浏览 2243
已结题

c语言%s的问题 只打印字符数组的第一个字符 不是\0的问题

#include
#include

int getline(int s[], int lim)
{
int c, i, j;
j = 0;
for (i = 0; (c = getchar()) != EOF && c != '\n'; ++i)
if (i < lim - 2)
{
s[j] = c;
++j;
}
if ('\n' == c)
{
s[j] = c;
++i;
++j;
}
s[j] = '\0';
return i;
}
int remove(int s[])
{
int i;
i = 0;
while (s[i] != '\n')
{
++i;
}
--i;
while ((i >= 0) && (' ' == s[i]) || ('\t' == s[i]))
{
--i;
}
if (i >= 0)
{
++i;
s[i] = '\n';
++i;
s[i] = '\0';
}
return i;
}
int main()
{
int i;
int line[1000];
while (getline(line, 1000) > 0)
{
// if (remove(line) > 0)
printf("%s", line);

        //用这个可以打印全部。。。
    /*for ( i = 0; line[i] != '\0'; i++)
    {
        printf("%c", line[i]);
    }*/
    putchar('\n');
}
    system("pause");
    return 0;

}

  • 写回答

6条回答 默认 最新

  • 大米粥哥哥 2017-09-23 07:44
    关注

    s[i] == '\0'; 改成一个=号吧
    既然想要输入输出字符 建议line改成char类型 getline传递的参数也改成char类型

    评论

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题