读书人

请问:字符串转化有关问题

发布时间: 2013-01-23 10:44:49 作者: rapoo

请教:字符串转化问题


对 2012 12 1 和 2012 12 31这组数据,程序运行起来后总是把rizi[2]的头位置连到第一个data[1].day上,别的数据则正常;请问这是为虾米?
int main()
{
long int sum = 0, res;
data[1].year=data[1].month=data[1].day = 0;
data[2].year=data[2].month=data[2].day = 0;
char rizi[3][9];
cin.getline(rizi[1],12);
//cin.get();
cin.getline(rizi[2],12);
//cout << rizi[1] << endl;
//cout << rizi[2] << endl;
for (i = 1; i <= 2; i++)
{
j = 0;
while(rizi[i][j] == ' ') {j++;}
while (isdigit(rizi[i][j]))
{
data[i].year = data[i].year * 10 + rizi[i][j] - '0';
j++;
}
while (rizi[i][j]==' ') {j++;}
while (isdigit(rizi[i][j]))
{
data[i].month = data[i].month * 10 + rizi[i][j]-'0';
j++;
}
while (rizi[i][j]==' ') {j++;}
while(isdigit(rizi[i][j]))
{
data[i].day = data[i].day * 10 + rizi[i][j] - '0';
j++;
}
cout << data[i].year << ' ' << data[i].month << ' ' << data[i].day << endl;
leap[i] = ((data[i].year % 4 == 0 && data[i].year % 100 != 0) || (data[i].year % 400 == 0));
jiange[i] = compute(data[i].month,data[i].day,leap[i]); //计算这一天与这一年第一天的间隔
cout << jiange[i] << endl;
}


你试一下把rizi定义为>=12个字符就可以了
程序要学会自己单步调试.

读书人网 >C++

热点推荐