我有以下结构的3个项目:
App
| |
...
| |
| +--lib
| | |
| | +--...
| |
| +--dist
|
Lib
| |
...
| |
| +--lib
| | |
| | +--sublib-1.0.jar
| |
| +--dist
| |
| +--lib-1.0.jar
|
SubLib
|
...
|
+--dist
|
+--sublib-1.0.jar
Run Code Online (Sandbox Code Playgroud)
其中有以下关系:
App <-- Lib <-- SubLib
Run Code Online (Sandbox Code Playgroud)
我使用的Apache常春藤检索都依赖App和Lib.依赖关系描述如下:
ivy.xmlof Lib:
<ivy-module version = "2.0">
<info organisation = "com.test.lib" module = "lib"/>
<dependencies>
<dependency org = …Run Code Online (Sandbox Code Playgroud) 为了理解输入流的工作原理,我设计了以下两个类:
#include <iostream>
class my_streambuf: public std::streambuf
{
private:
std::streambuf* buffer;
char ch;
protected:
virtual std::streambuf::int_type underflow()
{
std::streambuf::int_type result = buffer->sbumpc();
if (result != traits_type::eof())
{
ch = traits_type::to_char_type(result);
setg(&ch, &ch, &ch + 1);
}
return result;
}
public:
my_streambuf(std::streambuf* buffer) : buffer(buffer) {};
virtual ~my_streambuf() {};
};
class my_istream: public std::istream
{
public:
my_istream(std::istream& stream) : std::istream(new my_streambuf(stream.rdbuf())) {};
virtual ~my_istream()
{
delete rdbuf();
}
};
int main()
{
char s[32];
my_istream is(std::cin);
is >> s;
std::cout << …Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
int main(void)
{
char s[32];
example_1:
scanf("%s", s);
printf("%s\n", s);
example_2:
scanf("%s", &s[0]);
printf("%s\n", s);
example_3:
scanf("%s", &s);
printf("%s\n", s);
}
Run Code Online (Sandbox Code Playgroud)
为什么#3与其他2的工作方式相同?
#3有效吗?为什么?