首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Visual Studio 2010 編譯失敗:專案配置與文字處理需求

     編輯:程式設計綜合問答

編譯失敗常見原因

  1. 專案類型不匹配:嘗試編譯 `.txt`、`.cs` 非專案檔案,或缺少 `.sln`/`.vcxproj`。
  2. 字符集不一致**:專案設為 Unicode,程式碼用 `char*`/`printf` 未轉換。
  3. 缺少標頭/庫目錄**:`Additional Include Directories`、`Library Directories` 未配置。
  4. 主函數簽名錯誤**:`void main()` → `int main()` / `int _tmain(int argc, _TCHAR* argv[])`。

文字處理需求:從 txt 過濾詞彙

需求:讀取 txt,刪除(1)純數字詞、(2)字母+漢字混合詞、(3)超過 15 字詞、(4).com 網址詞,去首尾空格,只保留漢字詞。

Python 實現範例(推薦)

import re

def filter_words(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as f:
        text = f.read()
    
    # 分詞:按空白、標點分割(簡易版,中文建議用 jieba)
    words = re.split(r'[\s\u3000,。!?、;:“”‘’《》〈〉【】「」\'\"/\\|`~!@#$%^&*()_+\-=\[\]{};:,.<>?]+', text)
    
    filtered = []
    for w in words:
        w = w.strip()
        if not w: continue
        # 1. 純數字
        if re.fullmatch(r'\d+', w): continue
        # 2. 字母+漢字混合(含字母且含漢字)
        if re.search(r'[a-zA-Z]', w) and re.search(r'[\u4e00-\u9fff]', w): continue
        # 3. 長度 > 15
        if len(w) > 15: continue
        # 4. 含 .com
        if '.com' in w.lower(): continue
        # 只保留漢字詞(至少一個漢字,無字母數字標點)
        if re.fullmatch(r'[\u4e00-\u9fff]+', w):
            filtered.append(w)
    
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write('\n'.join(filtered))

# 使用
filter_words('input.txt', 'output.txt')

C++ 實現要點 (VS2010)

  • 使用 `std::wifstream`/`std::wofstream` 處理 Unicode (UTF-16/UTF-8 需轉換)。
  • 正則表達式:VS2010 支援 `` (C++11 需啟用 `/std:c++11` 或升級編譯器),否則用 `boost::regex` 或手寫狀態機。
  • 中文分詞:C++ 無內建,需整合 `jieba-cpp`、`cppjieba` 或簡易按標點分割。

獲取完整程式碼的條件

  1. 提供測試用輸入檔案內容範例。
  2. 提供預期輸出結果範例。
  3. 採納本回答。

建議

文字處理任務**強烈建議用 Python**(`jieba`、`re`、編碼處理成熟),C++ 僅在效能極致要求或嵌入式環境下考慮。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved