char str[20],*p=str;
scanf("%s",p[2]);
這段代碼正確嗎?
…
將錯就錯換一個考法吧,如何讓這段代碼正常運(yùn)行呢?
下面列了我能想到的幾個方法
1. 通過宏
#define scanf(
) scanf("%s",&str[2])
2. 重載
namespace
{
void scanf(const char*pfmt, char &pR)
{
char*p = &pR;
::scanf("%s",p);
}
};
3. 還是宏
#define char unsigned long
char str[20],*p=str;
p[2]=(unsigned long)&p[2];
scanf("%s",p[2]);
4. 或者插入
unsigned long pdw[3];
pdw[2]=(unsigned long)&p[2];
#define p pdw
scanf("%s",p[2]);
這段代碼正確嗎?
…
將錯就錯換一個考法吧,如何讓這段代碼正常運(yùn)行呢?
下面列了我能想到的幾個方法
1. 通過宏
#define scanf(

2. 重載
namespace
{
void scanf(const char*pfmt, char &pR)
{
char*p = &pR;
::scanf("%s",p);
}
};
3. 還是宏
#define char unsigned long
char str[20],*p=str;
p[2]=(unsigned long)&p[2];
scanf("%s",p[2]);
4. 或者插入
unsigned long pdw[3];
pdw[2]=(unsigned long)&p[2];
#define p pdw