|
注意を読んで以下のようにしました。
あと、やりたいこととはまず一文字を入力した構造体をEntarが押されるまで入力します。
そしてそれを空き領域に入れていきます。その空き領域に入れたひとつひとつの構造体を入力された順番にcharに入れていき、構造体がnull以外ない状態、charの規定文字数に達した場合終了ということだと思うのですが。。。
よろしくお願いいたします。
<pre><pre>#include &lt;conio.h&gt;
#include &lt;stdio.h&gt;
#include &lt;ctype.h&gt;
#define BUF_LEN (80)
struct InputData {
char Data;
struct InputData *BackPtr;
struct InputData *NextPtr;
}InputData={0,0,0};
struct InputBuffer {
struct InputData *StartPtr;
struct InputData *EndPtr;
struct InputData Buffer[BUF_LEN];
}*StartPtr={0},*EndPtr={0};
char *StrInput(char *DefaultStr, int InputLen);
int main()
{
char *buf;
buf = StrInput(<font color="#0000ff">&quot;&quot;</font>,BUF_LEN);
printf(<font color="#0000ff">&quot;\n&quot;</font>);
printf(<font color="#0000ff">&quot;%s&quot;</font>, buf);
return 0;
}
char *StrInput(char *DefaultStr, int InputLen)
{
static char buffer[BUF_LEN+1];
struct InputBuffer input;
int a=0;
int b=0;
for(a=0; a&lt;=BUF_LEN; a++){
InputData.Data=getch();
if(input.Buffer[a].Data==0x00){
input.Buffer[a].Data=InputData.Data;
struct InputData *NextPtr;
}
if(InputData.Data==0x0d){
break;
}
}
for(input.Buffer[0].NextPtr=input.StartPtr;;){
for(b=0; b&lt;=BUF_LEN+1; b++){
for(a=0; a&lt;=BUF_LEN; a++){
buffer[b]=input.Buffer[a].Data;
if(input.Buffer-&gt;NextPtr==0x00){
break;
}
if(b==BUF_LEN+1){
break;
}
}
putchar(buffer[b]);
return &amp;buffer[0];
}
</pre>
</pre>
|