c C++小问题 - C/C++ / C++ 语言
#include<stdio.h>
#include<malloc.h>
#include<iostream.h>
#define MAX 4
#define null 0
typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
}ArcNode;
typedef struct VNode{
char data;
ArcNode *firstarc;
}VNode,AdjList[MAX];
typedef struct{
AdjList vertices;
int vexnum,arcnum;
}ALGraph;
void insertv(ALGraph &Alg)
{
for(int i=0;i<Alg.vexnum;i++)
{
cout<<"输入:";//改为printf("输入\n");怎么不对呢?
cin>>Alg.vertices[i].data;//改为这个scanf("%c",&Alg.vertices[i].data);怎么不对呢
Alg.vertices[i].firstarc=null;
}
}
void main()
{
ALGraph alg;
printf("输入节点数与边数\n");
scanf("%d%d",&alg.vexnum,&alg.arcnum);
insertv(alg);
}
不应该啊,什么错误?
输入次数不一样,如果是cin则为Alg.vexnum次输入,如果是scanf 则不是
因为scanf读取字符的时候会冲缓冲区读取'\n'字符,所以才会出现楼主所说的问题,
而cin则不会读取'\n'字符。
问题的解决是:在读取字符的时候做'\n'判断,如果取到了'\n'字符,则舍去,重新读取
。。。。
正解
相关问答:
本人正在用Java做一个C/S架构的项目,
可是由于项目比较大,前期对架构的设计尤其重要,因为后期可能随时会加个功能或者去掉某些功能。
所以特地寻求如何设计C/S的架构使程序更加面向对象更加易于维 ......
在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......
谁能帮我把下面这些代码改成VB形式的,多谢了,急用~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[],float g ......