我分配了一个长变量,但错误消息声称这是一个整数

问题描述

#include <stdio.h>
#include <cs50.h>

int main(void)
{
    long card;
    do
    {
        card = get_long("Type crdit card number\n");
    }
    while (card < 0);
    long c = card;
    int i = 1;
    for (long o = 10; c >= 10;o *= 10,i++)
    {
        c = c / 10;
    }
    for (int h = 0,o = 10; h < i; h++,o *= 10)
    {
        c = card;
        c = c % o;
        printf("%ld\n",c);
        printf("%ld\n",o);
    }
}

我正在处理一个需要处理信用卡号的任务,因此我一直在使用长变量,例如第14行上的“ o”,但我一直在获取“格式指定类型” long”但是当我尝试打印该参数时,它的类型为“ int”“作为错误消息,我不知道原因。我对编程很陌生,所以这可能只是一个初学者的错误,因此对您的帮助深表感谢。

解决方法

循环中

          TextField(
              controller: _chat_text_form_controller,expands: false,textInputAction: TextInputAction.newline,keyboardType: TextInputType.multiline,maxLines: null,decoration: InputDecoration(
                contentPadding:
                EdgeInsets.symmetric(horizontal: 20,vertical: 0),fillColor: Colors.white,filled: true,hintText: 'Type Text Here...',hintStyle: TextStyle(color: Colors.grey),border: OutlineInputBorder(
                  borderRadius: BorderRadius.all(Radius.circular(25)),borderSide: BorderSide(color: Colors.red,width: 2),),);

for (int h = 0,o = 10; h < i; h++,o *= 10) { c = card; c = c % o; printf("%ld\n",c); printf("%ld\n",o); } 被声明为o。您还应该将其声明为int

long