husuiwen 发表于 2016-8-20 15:38:44

求解答\t问题

#include<stdio.h>

struct student
{
        int num;
        char name;
        float score;
};
void main()
{
        void print(struct student stu[]);
        struct student stu;
        int i;

        printf("请输入3个学生的个人信息:\n");
        for(i = 0;i < 3;i++)
                scanf("%d%s%f%f%f",&stu.num,stu.name,&stu.score,&stu.score,&stu.score);
        print(stu);
}

void print(struct student stu[])
{
        int i;

        for(i = 0;i < 3;i++)
        {
                printf("num:%d\tname:%s\tscore:%6.2f,%6.2f,%6.2f\n",stu.num,stu.name,stu.score,stu.score,stu.score);
        }
}输入3个学生的信息,只要输入学生名字小于3个字符(stu.name = “hu”),打印的时候\t怎么就不起作用。

husuiwen 发表于 2016-8-20 15:39:55

这个是没有的,点错了

Yo才俊Miao 发表于 2016-8-20 16:21:12

这个程序本身就有问题啊,编译出错{:10_266:}

Yo才俊Miao 发表于 2016-8-20 17:05:33

额(-。-);我是用的VS2015,有安全检查所以出错,还有就是打印的时候没问题啊

husuiwen 发表于 2016-8-20 21:05:20

C:\Users\Administrator\Desktop

husuiwen 发表于 2016-8-20 21:09:10

难道是编译器问题,我的是VS2010{:10_266:}

Krant5 发表于 2016-8-20 22:53:44

本帖最后由 Krant5 于 2016-8-20 22:58 编辑

我试过了确实是这样,我查了挺多资料我可以给你解释下这个问题。

注意看图上\t是以列对准的,就是说前八个字符算是一列,那么我在第一列第七个字符了加上\0刚好八个字符,我还是在第一列,这时候\t给你跳到 第二列第一个字符去,你感觉就跟没用似的,但他事实上就是发挥了作用。

总结:无论你在当前列第几个字符,\t总是会让你跳到下一列第一个字符的位置。

懂了就采纳!

mdgsf 发表于 2016-8-20 23:52:47

http://mdgsf.github.io/c/2016/05/24/c-tabs.html
这个或许对你有帮助

husuiwen 发表于 2016-8-22 08:49:46

Krant5 发表于 2016-8-20 22:53
我试过了确实是这样,我查了挺多资料我可以给你解释下这个问题。

注意看图上\t是以列对准的,就是说前 ...

{:9_232:}懂了哈哈

husuiwen 发表于 2016-8-22 09:32:42

mdgsf 发表于 2016-8-20 23:52
http://mdgsf.github.io/c/2016/05/24/c-tabs.html
这个或许对你有帮助

{:9_232:}{:9_232:}
页: [1]
查看完整版本: 求解答\t问题