问题描述
#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