之前一直用的 ./a.out < data.txt
最近把VIM改了一下直接F5编译运行, 从网上参考的方法如下:
:autocmd BufRead,BufNewFile *.dot map <F5> :w<CR>:!dot -Tjpg -o %<.jpg % && eog %<.jpg <CR><CR> && exec "redr!"
"Compile C&C++ with F5
map <F5> : call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!gcc % -o ~/build/%<"
exec "!time ~/build/%< <"
elseif &filetype == 'cpp'
exec "!g++ % -o ~/build/%<"
exec "!time ~/build/%<"
endif
endfunc
但是这样就不不知道在F5按下去的时候自动运行并且自动加载数据文件了, 直接在后面加< data.txt好像不行
然后我又想办法在代码里面添加文件读取操作, 但是又发现用freopen的话
我是 freopen("data.txt", "r", stdin);
每次直接数据读取完却不执行程序, 用fstream 的话
fstream fin;
fin.open("data.txt");
又不能成功读取数据...
请问该如何正确实现VIM 快捷键编译运行的同时还能读取数据?
最近把VIM改了一下直接F5编译运行, 从网上参考的方法如下:
:autocmd BufRead,BufNewFile *.dot map <F5> :w<CR>:!dot -Tjpg -o %<.jpg % && eog %<.jpg <CR><CR> && exec "redr!"
"Compile C&C++ with F5
map <F5> : call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!gcc % -o ~/build/%<"
exec "!time ~/build/%< <"
elseif &filetype == 'cpp'
exec "!g++ % -o ~/build/%<"
exec "!time ~/build/%<"
endif
endfunc
但是这样就不不知道在F5按下去的时候自动运行并且自动加载数据文件了, 直接在后面加< data.txt好像不行
然后我又想办法在代码里面添加文件读取操作, 但是又发现用freopen的话
我是 freopen("data.txt", "r", stdin);
每次直接数据读取完却不执行程序, 用fstream 的话
fstream fin;
fin.open("data.txt");
又不能成功读取数据...
请问该如何正确实现VIM 快捷键编译运行的同时还能读取数据?