【发布时间】:2015-04-12 14:38:31
【问题描述】:
程序:
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
//#include "iostream"
const int IDLEN = 10;
const int POLARITYLEN = 3;
const int MAXSTOCKITEMS = 10;
struct TransistorRec {
char manufacturersID[IDLEN + 1];
char polarity[POLARITYLEN + 1];
float power;
float gain;
int stock;
};
typedef struct TransistorRec Transistor;
struct StockRec{
int size;
Transistor stocklist[MAXSTOCKITEMS];
};
typedef struct StockRec Stock;
int main()
{
int total, i;
struct TransistorRec a[10];
char x, y;
printf("How many transistors: ");
scanf_s("%i", &total);
if (total >MAXSTOCKITEMS){
printf("too much!! repeat");
scanf_s("%i\n", &total);
}
for (i = 0; i < total; i++)
{
printf("Enter manufacturer's ID of transistor:");
scanf_s("%s",a[i].manufacturersID);
printf("Enter polarity of transistor: ");
scanf_s("%s",a[i].polarity);
printf("Enter power of transistor: ");
scanf_s("%f",a[i].power);
printf("Enter gain of transistor: ");
scanf_s("%f",a[i].gain);
printf("Enter current stock of transistor: ");
scanf_s("%i",a[i].stock);
}
return 0;
}
我的任务:
编写一个 C 函数,从用户(键盘)读取有关库存晶体管的信息, 并将此信息存储在 Stock 结构中。一组输入数据样本(制造商 ID、 极性、最大功率、电流增益、库存数量)为: 2N2222 NPN 0.5 75 23 BC559 PNP 0.5 125 7 TIP31B NPN 40.0 20 11
问题:
当我通过scanf_s 将我的值(字符串)输入到结构时,程序将停止。
【问题讨论】:
-
走开,自己写吧。
-
我的 x 曾经是 [i].manufacturersID
-
和y是a[i].polarity,我只是忘了改回来,
-
然后使用
scanf_s("%s",a[i] .manufacturersID,sizeof(a[i].manufacturersID));和scanf_s("%s",a[i].polarity,sizeof(a[i].polarity)); -
从第二个
scanf_s中删除\n,而不是第一个。第一个没有它...我的错误