dポイントプレゼントキャンペーン実施中!

私は猫でもわかるネットワークプログラミングをよんでふと思ったのですが・
HTMLソースを空白行も含め縦に並べたいのです
たとえば・・
<
h
t
m
l
>

ってな感じで・・
つまりは
printf("%s(%cでも・・)",一文字);
ってな感じにしたいのです・・
一応作りかけのソース張っておきます。。。。
wininet使ってます・・

//省略
//インターネット(wininet)開始
hInet = InternetOpen("ユーザー名収集プロトタイプ",INTERNET_OPEN_TYPE_PRECONFIG,
NULL,NULL,0);

hUrl = InternetOpenUrl(hInet,szUrl,NULL,0,0,0);

//lpszSrcに1バイトのみ確保
hMem = GlobalAlloc(GHND,1);
lpszSrc = (char *)GlobalLock(hMem);

//読み出すものがなくなるまで読み出す
while(1){
InternetReadFile(
hUrl,szBuf,(DWORD)sizeof(szBuf) - 1,&dwRead);
szBuf[dwRead] = '\0';


//読み出すものが無くなったらループを脱出
if (dwRead == 0){
break;
}

//必要バイト数の計算
dwTotal += dwRead;

//確保領域の大きさ変更
hMem = GlobalReAlloc(hMem,dwTotal,GMEM_MOVEABLE);
if(hMem == NULL){
perror("再アロケート失敗\n");
}
lpszSrc = (char *)GlobalLock(hMem);
if(lpszSrc == NULL){
perror("メモリ領域確保に失敗\n");
break;
}

strcat(lpszSrc,szBuf);
printf("%s\n",szBuf);
}


//メモリの開放
GlobalUnlock(hMem);
GlobalFree(hMem);

//インターネットハンドルの開放
InternetCloseHandle(hUrl);
InternetCloseHandle(hInet);

return 0;
}

A 回答 (1件)

それって printf("%s\n",szBuf); の個所で szBuf を1文字づつ出すようにすればいいということでしょうか? だったらこう書き変えればいいんじゃないでしょうかね。



char *p; /* この宣言はC99やC++以外の場合はブロックの最初の方でやっておく */

for (p = szBuf; *p; p++) printf("%c\n", *p);
    • good
    • 0
この回答へのお礼

ふと気になったことなのですいません・・
結果は期待通りの結果となりました・・

本当にありがとうございます。

お礼日時:2006/02/28 17:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!