2011-05-07 88 views
-2
int main() { 

    char b[100]; 
    for (int i = 1; i <= 10; i++) 
     scanf ("%c%*c", b[i]); 
} 

字符数组的声明,但是我得到的错误“格式arguemnt是不是一个指针”错误在GCC 3.3.4

我如何声明一个数组来获取所有值形成用户?

编辑:

#include <cstdio> 
#include <stdlib.h> 

using namespace std; 


int p[100], b, bc; 
char bb[100]; 

int main() { 


     printf("Enter Count : "); 
     scanf ("%d", &bc); 
     for (b = 1; b <= bc; b++) { 
      printf("Enter a char and integer: "); 
      scanf ("%c%*c %d", &bb[b-1], &p[b-1]); 
      printf ("\n Your Entries => %c, %d", bb[b-1], p[b-1]); 
     } 


    return 0; 
} 

这是我的源代码。

+5

这不是你如何在C或C++中编写for-loop。 – 2011-05-07 13:41:57

+0

:)只是为了展示如何,没有别的.. :) – coderex 2011-05-07 13:42:31

+0

为什么-ve马克?什么 ? – coderex 2011-05-07 13:50:26

回答

2
#include <cstdio> 

显然,你是编码C++

#include <stdlib.h> 

哦!等待。毕竟是C。
@coderex:让你的心是什么语言你使用

using namespace std; 

哦!它是C++。 我的答案不考虑我不知道的C++细节。

int p[100], b, bc; 
char bb[100]; 

如果你能避免使用全局变量,你的代码会更容易对付。

int main() { 


     printf("Enter Count : "); 
     scanf ("%d", &bc); 
     for (b = 1; b <= bc; b++) { 

惯用的方式是for (b = 0; b < bc; b++)。使用惯用方式,您不需要在循环内减去1来访问数组索引。

  printf("Enter a char and integer: "); 
      // scanf ("%c%*c %d", &bb[b-1], &p[b-1]); 

scanf()是众所周知的难以正确使用。
无论如何,"%d"转换说明符已经丢弃了空格,因此您可以删除这些奇怪的东西;还有一个从最后的scanf呼叫挂起的输入。在格式字符串中使用空格可以消除它。

  scanf (" %c%d", &bb[b-1], &p[b-1]); 
      printf ("\n Your Entries => %c, %d", bb[b-1], p[b-1]); 
     } 


    return 0; 
} 

玩得开心!

+0

之后8年的差距我正在使用C/C++。 :) – coderex 2011-05-07 14:54:33

+0

我建议你坚持使用'C'或'C++'(或'C#',或'D',...)之一。不要尝试编写多语言源文件。大声笑 – pmg 2011-05-07 14:56:51

+0

:)是啊当然:)无论如何tanQx – coderex 2011-05-07 15:52:08

3

如何:

scanf("%c", &b[i]); 

scanf()需要知道变量的地址,以便它可以修改它。

+0

不,现在没有错误,但是当我试图打印它不显示 – coderex 2011-05-07 13:48:36

+0

我需要“%c%* c”这是因为我想读取每个字符后的整数,否则明智的换行条目将打破执行 – coderex 2011-05-07 13:49:51

+1

@coderex:是的,你可能需要修改这个你的确切要求。上面的代码片段是为了演示需要提供一个*地址*。 – 2011-05-07 13:49:55

0

错误在于,它在整数值输入后读取“回车键”作为换行符。

避免这种情况我以前%* C scanf ("%c%*c %d%*c", &bb[b-1], &p[b-1]);

谢谢大家。

+0

查看我的回答...但是'scanf(“%c%d”,&bb [b - 1],&p [b - 1]); '“起作用”并且很容易呃在眼睛和大脑上。 – pmg 2011-05-07 14:59:02