yuAriellexi 2018-09-26 08:45 采纳率: 100%
浏览 474
已采纳

isdigit()一小段代码,string读入问题

 #ifndef READMATRIX_HPP
#define READMATRIX_HPP


void readMatrix(int **m, int sz);



#endif

#include "readMatrix.hpp"
#include <iostream>
#include <cmath>
#include <cctype>
#include <stdlib.h>
using namespace std;

void readMatrix(int **m, int sz)
{
    cout << "Fill the Matrix" << endl;
    string s;
    getline(cin, s);
    int index = 0;
    for (int i = 0; i < sqrt(sz); i++)
    {
        for (int j = 0; j < sqrt(sz); j++)
        {
            if (isdigit(s[index]))
            {
                m[i][j] = s[index] - '0';
            }
            else
            {
                cout << "it is not digit";
            }
            index++;
        }                   
    }
}

#include "readMatrix.hpp"
#include "Determinant.hpp"
#include <iostream>
#include <cmath>
#include <cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
    int row, column;
    int sz;
    int d = 0;
    cout << "Enter the size of matrix, 2 * 2 or 3 * 3, input 4 or 9:" << endl;
    cin >> sz;
    row = sqrt(sz);
    column = sqrt(sz);

//dynamically allocate a 2D array
    int **a = new int *[row];
    for (int i = 0; i < row; i++)
    {
        a[i] = new int[column]; 
    }


    readMatrix(a, sz);
        for (int i = 0; i < sqrt(sz); i++)
    {
        for (int j = 0; j < sqrt(sz); j++)
        {
            if (j != 0)
            {
                cout << " ";
            }
            cout << a[i][j];                                        
        }
        cout << endl;
    }
    cout << "determinant: " << d << endl;

    for (int i = 0; i < row; i++)
    {
        delete[] a[i];
    }
    delete[] a;
    }

不知道为什么string没有读入

  • 写回答

3条回答 默认 最新

  • xingjianfengaa 2018-09-26 09:36
    关注

    你第一次cin输入时其实输入了一个数值和回车,sz把数值取了,然后剩下了回车 到getline时它把回车取了,所以也不用你输入了,你可以输入时直接输入 整数字符串连起来输入或getline2次,第一次排除掉回车,第二次输入字符串

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题