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'字符,则舍去,重新读取
。。。。
正解
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
有一10*10矩阵,除去第一个点(0,0)和最后一点(9,9),还有八个点为1,其他都为0,要求用二维数组表示。八个点是随机生成的,编写相关程序表示矩阵所有可能情况。
真心求教各位高手,哎!本人太菜了!呵呵!
......
谁能帮我把下面这些代码改成VB形式的,多谢了,急用~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[],float g ......
公司开发一个触摸屏程序,我负责的一块,实现这样一个功能,当鼠标点击窗口中图片(一张图分成几部分)的其中一部分时,将这部分图片截取出来,弹出新的窗口,将截取出的图片显示出来。我使用Rectange类控制了返回, ......
A表 有两个字段
id 唯一数字域
InfoTxt text 类型
我现在要把 id 不是14 的所有 InfoTxt字段 文本后面 都加上 'aaa'
按下面执行下来 只有表最后一行加上了 'aaa' ......