完形填空生成器 1-1 打开文本框与提取文本字符
生活随笔
收集整理的這篇文章主要介紹了
完形填空生成器 1-1 打开文本框与提取文本字符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前段時間聽到補習的英語老師講完形填空,說每個年級的完形題的選項都是固定的,是有規律可循的,于是就萌生出一個大膽的想法。
但是
? ? ? 這個項目需要讀取文件信息的能力。
? ? ? 讀取信息到不是什么難事,fstream輕輕松松搞定。
bool F(Article a,int Acode) {//傳入一個文章對象和文章的序號char dataL[1000],newW[20];//前一個是存放文件地址,另一個存放提取后的單詞memset(dataL, '\0', 1000);//初始化數組,有點重要if (!fingTheFile(dataL))return false;//彈出打開文件窗口并將地址寫入數組中printf(" -您已經選擇了路徑為 %s 的文件正在進行讀入", dataL);ifstream infile;infile.open(dataL, ios::in); int wnum = 0;//以只讀的方法打開文件printf("\n -讀入完成!以下是英語原文:\n ");while (infile >> newW) { //讀入單詞a.word[wnum] = newW;printf("%s ",a.word[wnum++]);}a.wordNum = wnum;a.newTime = getTime();a.code = Acode;//讀入其他信息printf("\n -該文章共有 %d 個單詞,于 %s 完成錄入在 %d 號文章中,請為該文章命名(10個字符,中英文皆可):", a.wordNum,a.code, a.newTime);scanf("%s", a.title);infile.close();//O了,一定要關閉文檔return true; }可找到地址就不那么簡單了,谷歌度娘走一波后抄找到了需要的東西:
bool fingTheFile(char str[]) {char szFile[1000];OPENFILENAME ofn;ZeroMemory(&ofn, sizeof(ofn));ofn.lStructSize = sizeof(ofn);ofn.hwndOwner = NULL;ofn.lpstrFile = (LPWSTR)szFile;ofn.lpstrFile[0] = '\0';ofn.nMaxFile = sizeof(szFile);ofn.lpstrFilter = L"txt\0*.*\0Text\0*.TXT\0";ofn.nFilterIndex = 1;ofn.lpstrFileTitle = NULL;ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;if (GetOpenFileName(&ofn)){ConvertLPWSTRToLPSTR(ofn.lpstrFile, str);return true;}else{return false;} }//年代久遠,好像也是從csdn摸來的,有見過的老哥麻煩提醒一下哈至此,就獲得了一個寬字符的地址...
寬字符...
這就很尷尬了,普通的printf輸出不了,得用帶w的,可fstream就不干了,(最重要的是我不會...)
所以我們還需要一個中轉函數
char* ConvertLPWSTRToLPSTR(LPWSTR lpwszStrIn,char str[]) {LPSTR pszOut = NULL;try{if (lpwszStrIn != NULL){int nInputStrLen = wcslen(lpwszStrIn);// Double NULL Termination int nOutputStrLen = WideCharToMultiByte(CP_ACP, 0, lpwszStrIn, nInputStrLen, NULL, 0, 0, 0) + 2;pszOut = new char[nOutputStrLen];if (pszOut){memset(pszOut, 0x00, nOutputStrLen);WideCharToMultiByte(CP_ACP, 0, lpwszStrIn, nInputStrLen, pszOut, nOutputStrLen, 0, 0);}}}catch(std::exception e){}memcpy(str,pszOut,strlen(pszOut));return pszOut; }到這里,一個完整的提取函數就ok了~
最后亂胡一下頭文件,
- #include <cstdio>
- #include <tchar.h>
- #include <fstream>
- #include <cstring>
- #include <ctime>
- #include <windows.h>
- #include <iostream>
- #include <commdlg.h>
- #include <cstdlib>
- #include <exception>
- #include <atltime.h>
?
齊活~
總結
以上是生活随笔為你收集整理的完形填空生成器 1-1 打开文本框与提取文本字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: J0ker的CISSP之路:复习-安全架
- 下一篇: 深圳求职手册