0

C++ の MFC アプリケーションにテキスト エディット コントロールがあり、コントロールに書き込まれたテキストを読み取って、ハード ディスクにファイルを書き込もうとしています。

問題は、文字列全体ではなく、最初の文字だけを読み取ることです。

 tchar fname[100];   
 _stprintf(fname, _T("%Sfile-%d.bmp"), pDoc->swap_text, swap);
save_image_uncompressed( (const unsigned char*) pDoc->image[idx], fname, pDoc->m_buf[idx].lpbmi[frm_idx]->bmiHeader.biHeight,
                        pDoc->m_buf[idx].lpbmi[frm_idx]->bmiHeader.biWidth,
                        pDoc->m_buf[idx].lpbmi[frm_idx]->bmiHeader.biWidth*3,
                        0);

たとえば、エディット コントロールにname_of_directory/と書かれている場合、name_of_directory/ 文字列の最初の文字である"* n *file-1.bmp" が読み取られます。

使ってみた

_stprintf(fname, _T("%Sfile-%d.bmp"), pDoc->swap_text.GetString(), swap);

しかし、私は同じ問題を抱えています。

助けてくれませんか?

4

1 に答える 1

1

間違ったフォーマットコードを使用しているようです:

_stprintf(fname, _T("%sfile-%d.bmp"), ...)
//                   ^^

%s(大文字) の代わりに (小文字)を使用する必要があり%Sます。

于 2013-03-29T16:51:47.903 に答える